我试图在插入时创建一个相当简单的触发器(或者我认为),但它不起作用。有人可以帮助我吗?
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的新手,所以请放轻松我:)
答案 0 :(得分:2)
您似乎正在编写更新触发器,该触发器在更新发生之前运行。我相信你需要改变第一行,比如“在插入书籍后创建触发myInsert_Trigger”。在强制执行所有表约束后,将触发此触发器。