2012-04-13 11 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

+0

回避策として、BEGINとENDのキーワードを削除してみてください。 – Devart

+0

phpMyAdminで実行しようとしています... – Tom

答えて

2

SUPERがない場合、あなたは

  • あなたのDBAを要求することができる

    SHOW GRANTS; 
    

    このクエリを実行し、区切り

    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 ; 
    

    と限り、あなたの権限が行くように変更してみてくださいあなたの特権を追加する

  • あなたのDBAを持っているあなたにトリガをかけてください
関連する問題