mySQL - 如果语句给出语法错误

jud*_*dda 4 mysql

所以我有以下查询:

IF ( ( SELECT RevisionNumber FROM SchemaVersion ) > 1 ) THEN BEGIN
    CREATE TABLE Test ( ID INT );
    CREATE TABLE Test2 ( ID INT );
END;
END IF
Run Code Online (Sandbox Code Playgroud)

基本上我想根据我的表中的值(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
Run Code Online (Sandbox Code Playgroud)

知道为什么这是错误/如何解决?

我只是在阅读另一篇帖子,显然BEGIN/ END只能在存储过程中使用.有没有办法绕过这个(没有把它放在存储过程中).

谢谢

gro*_*gel 11

IF语句是所谓的复合语句语法的一部分,它只在存储的代码中可用,如触发器,函数或存储过程.

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-compound-statements.html