2011-12-29 40 views
1

我想創建一個相當簡單的觸發器(或者我以爲)插入,但它不工作。有人可以幫助我嗎?在插入不工作的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; 

我是新來的MySQL所以請去容易對我:)

回答

2

你似乎是寫一個更新觸發器,它運行在更新發生之前。我相信你需要改變第一行,像這樣「CREATE TRIGGER myInsert_Trigger AFTER INSERT ON books」。在執行所有表約束後,將觸發此觸發器。

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

+0

感謝您指出錯誤。我的意思是編寫一個插入觸發器並檢查某些情況,然後取消插入,如果條件不符合要求。 – 2011-12-30 02:16:25