2011-12-29 14 views
1

挿入時に(または私が思った)かなり単純なトリガを作成しようとしていますが、動作しません。誰かが私を親切に助けることができますか?私は、MySQLに新しいです挿入時にmysqlトリガが動作しない

CREATE TRIGGER myInsert_Trigger BEFORE UPDATE ON books 
FOR EACH ROW 
BEGIN 
    DECLARE ename VARCHAR(255) 
    DECLARE bookid int 

    Select bookid=id, ename=b.name From books B inner join authors A on B.AuthorID=A.id Where B.name=new.name 

    IF (bookid > 0) THEN 
     SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "Book already exists." 
    END IF; 
END; 

ので、私に簡単に移動してください:)

答えて

2

あなたは更新が行われる前に実行される更新トリガを、書いているように見えます。私はこのような最初の行を変更する必要があると信じています "CREATE TRIGGER myInsert_Trigger後に挿入する本"。このトリガは、すべてのテーブル制約が強制された後に起動されます。

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

+0

エラーを指摘してくれてありがとう。私は挿入トリガーを書いて特定の条件をチェックし、その条件が要件を満たさない場合に挿入を取り消すことを意味しました。 –

関連する問題