所以我有以下查询:
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