我试图通过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服务器版本对应的手册,以便在'IF var_a = 1 THEN附近使用正确的语法更新table_B设置table_B。someVal = table_B。someVal + 1;第2行
感谢帮助。这是语法错误吗?
是的,这是一个语法错误。请注意,MySQL不使用特殊的INSERTED
表(这是SQL Server特有的)
即使你有一个名为INSERTED
的表,这仍然不是一个有效的MySQL语法的触发器;至少需要用分号结束SELECT语句。但是触发器不允许返回结果集,您需要执行SELECT…INTO,或者使用游标。
使用"NEW"one_answers"OLD"关键字限定对正在更新的行中列的引用。
查看var_a
列的值,请参考NEW.var_a
IF NEW.var_a = 1 THEN
UPDATE table_B
SET table_B.someCol = tableB.someCol + 1;
END IF;