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

