我试图通过PHPMyAdmin触发器添加触发器工具向我的数据库中的表添加触发器。
我在同一个数据库中有两个表:table_A和table_B。 我正在检查从触发器返回的更新值是否等于1.如果是,我想更新table_B中的值。这是我的代码:
SELECT var_a FROM INSERTED
IF var_a = 1 THEN
UPDATE table_B
SET table_B.someVal = table_B.someVal + 1;
END IF;
错误:
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在#var; IF var_a = 1 THEN附近使用正确的语法 更新表_B SET table_B.someVal = table_B.someVal + 1; E'在第2行
帮助表示赞赏。这是语法错误吗?
答案 0 :(得分:0)
是的,这是语法错误。请注意,MySQL不使用特殊的INSERTED
表(这对SQL Server来说是特殊的。)
即使您有一个名为INSERTED
的表,但该触发器的MySQL语法仍然无效;至少你需要用分号结束SELECT语句。但是不允许触发器返回结果集,您需要执行SELECT ... INTO或使用游标。
使用" NEW"和" OLD"用于限定对正在更新的行中的列的引用的关键字。
要检查分配给var_a
列的值,请参考NEW.var_a
例如:
IF NEW.var_a = 1 THEN
UPDATE table_B
SET table_B.someCol = tableB.someCol + 1;
END IF;