SQL if exists database總是出現語法錯誤


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沒有更詳細的嗎?
追問

我的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會理解為是表名並不是數據庫

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM