SQL if exists总是出现语法错误。望高手纠正。_百度知道 http://zhidao.baidu.com/link?url=7VyzcX0V1A3lhBQ1emNt2sTk7QGDuijOqRsSxc1ML7owhy5utaaRIUYBtGG8hRmf8HaSlIgRKsEvkI3Tqc9guq
IF EXISTS ( SELECT name FROM sys.databases WHERE name = 'ttt' )
DROP DATABASE ttt;
或者
IF EXISTS ( SELECT name FROM sys.databases WHERE name = 'ttt' )
DROP DATABASE [ttt];
或者
IF EXISTS ( SELECT name FROM databases WHERE name = 'ttt' )
DROP DATABASE ttt;
没怎么用mySQL,所以不大确定和我学的一不一样,给了三个可能,应该是其中一种。
- 追问
-
试过了,都不行!还是ERROR 1064.
- 回答
-
我帮你上网查了一下,ERROR1064一般是版本问题,因为不同版本有不同的Reserve Word,比如‘Order’和‘When’,也有因为忘了分号出现的,还有的大多数是CREATE TABLE才出现的。
你的error message没有更详细的吗?
- 回答
-
又查了半天资料,你试试这个吧
DROP DATABASE IF EXISTS ttt;
另外:这个database是test或者learning用的吗?随便删database没关系?
- 提问者评价
-
感谢你的帮助,确实可顺利执行,只是不太明白,为什么按原有语法会出错,教程所述都是这样写的。
drop database if exists `dbname`;
- 追问
-
这个命令确实可以解决。只是不明白为何网上看的基本都是if exists(select * from sys.databases where name='xxx' )的格式,却根本不可执行!
- 回答
-
因为select from 后接的是表名
你是sys.databases SQL会理解为是表名并不是数据库