插入时mysql触发器无法正常工作

时间:2011-12-29 05:28:55

标签: mysql triggers

我试图在插入时创建一个相当简单的触发器(或者我认为),但它不起作用。有人可以帮助我吗?

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的新手,所以请放轻松我:)

1 个答案:

答案 0 :(得分:2)

您似乎正在编写更新触发器,该触发器在更新发生之前运行。我相信你需要改变第一行,比如“在插入书籍后创建触发myInsert_Trigger”。在强制执行所有表约束后,将触发此触发器。

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