MySQL триггер на вставке не работает - PullRequest
1 голос
/ 29 декабря 2011

Я пытаюсь создать довольно простой триггер (или я так думал) при вставке, но он не работает.Может ли кто-нибудь любезно помочь мне?

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 Ответ

2 голосов
/ 29 декабря 2011

Похоже, вы пишете триггер обновления, который запускается до того, как произойдет обновление.Я считаю, что вам нужно изменить первую строку, например, «CREATE TRIGGER myInsert_Trigger ПОСЛЕ ВСТАВКИ НА Книги».Этот триггер сработает после того, как все ограничения таблицы будут применены.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...