mySQL触发器返回错误

时间:2012-04-13 12:39:40

标签: mysql sql triggers

我正在尝试在表上设置触发器,以将行的内容复制到另一个表中。

我有以下内容:

CREATE TRIGGER story_deleted BEFORE DELETE ON stories 
  FOR EACH ROW BEGIN
    INSERT INTO stories_backup SET story_id = OLD.story_id;  
  END;

但是这会返回以下错误:

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 '' at line 3

我无法解决我出错的地方。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尝试更改分隔符

DELIMITER $$

CREATE TRIGGER story_deleted BEFORE DELETE ON stories  
  FOR EACH ROW
  BEGIN 
    INSERT INTO stories_backup SET story_id = OLD.story_id;   
  END $$

DELIMITER ;

并且就您的权限而言,运行此查询

SHOW GRANTS;

如果没有SUPER,你可以

  • 请求您的DBA为您添加该权限
  • 让您的DBA为您创建触发器