SQL if exists总是出现语法错误。望高手纠正。_百度知道 /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没有更详细的吗?追问
我的SQL版本是5.5.27.0 已经卡在这好几天了,网上也查过下,但至此未找到原因,若能助找出原因,这个年可过得踏实多了。呵呵.....回答又查了半天资料,你试试这个吧
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会理解为是表名并不是数据库
如果觉得《mysql用exists怎么会报语法错误_SQL if exists database总是出现语法错误》对你有帮助,请点赞、收藏,并留下你的观点哦!