PHPMyAdmin更新触发器错误

时间:2014-07-01 20:29:53

标签: mysql triggers phpmyadmin syntax-error

我试图通过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行

帮助表示赞赏。这是语法错误吗?

1 个答案:

答案 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;
相关问题