[英]mySQL - If statement giving syntax error
所以我有以下查詢:
IF ( ( SELECT RevisionNumber FROM SchemaVersion ) > 1 ) THEN BEGIN
CREATE TABLE Test ( ID INT );
CREATE TABLE Test2 ( ID INT );
END;
END IF
基本上我想根據我的表中的值(SchemaVersion - 總是有1行)決定是否需要進行某些更改。
但是,當我使用此查詢時,我收到以下錯誤消息:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF ( ( SELECT RevisionNumber FROM SchemaVersion ) > 1 ) THEN BEGIN
CREATE T' at line 1
知道為什么這是錯誤/如何解決?
我只是在閱讀另一篇帖子,顯然BEGIN
/ END
只允許在存儲過程中使用。 有沒有辦法繞過這個(沒有把它放在存儲過程中)。
謝謝
IF
語句是所謂的復合語句語法的一部分,它只在存儲的代碼中可用,如觸發器,函數或存儲過程。
http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-compound-statements.html
使用帶括號的IF function
調用IF function
,這與IF statement
不同
注意還有一個IF()函數,它與此處描述的IF語句不同。 請參見第11.4節“控制流功能”。
我想你需要在存儲過程中運行它。 請參閱http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.