2012-04-13 94 views
1

我想在表上设置一个触发器,将一行的内容复制到另一个表中。mySQL触发器返回错误

我有以下几点:

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

我不能工作了,我要和这个去错了。有任何想法吗?

+0

该代码是正确的。你如何执行这个查询,在phpmyadmin? – Devart 2012-04-13 12:45:20

+0

作为解决方法 - 尝试删除BEGIN和END关键字。 – Devart 2012-04-13 12:46:03

+0

试图在phpMyAdmin中执行... – Tom 2012-04-13 12:47:06

回答

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 cr为你的触发