簡體   English   中英

mySQL - 如果語句給出語法錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM