MySQL表触发器正确的语法

时间:2017-04-27 18:33:59

标签: mysql sequelpro

我尝试使用Sequel Pro向MySQL数据库添加表触发器。我想要的行为是:

每当我的某个表中的某个特定列被更新时,我想在另一个表中记录旧值,以便稍后可以引用它。

我使用GUI创建表触发器:

行动时间:之前 事件:更新

IF NEW.status = "Some String" THEN
INSERT INTO 'my_backup_table' (id, status) VALUES (OLD.id, OLD.status)
END;

我不断收到语法错误:无法创建指定的触发器。

MySQL说:你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在'' my_backup_table'

附近使用正确的语法

非常感谢任何帮助! 谢谢

1 个答案:

答案 0 :(得分:1)

您需要进行两项更改:

  1. 表名应包含在反引号中,例如`my_backup_table`
  2. IF应以END IF
  3. 结尾

    下面应该有效:

    IF NEW.status = "Some String" THEN
    INSERT INTO \`my_backup_table\` (id, status) VALUES (OLD.id, OLD.status)
    END IF;