2011-12-29 2 views
1

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

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 ПОСЛЕ ВСТАВКИ НА книги». Этот триггер будет запущен после того, как будут применены все ограничения таблицы.

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

+0

Благодарим за указание ошибки. Я хотел написать триггер вставки и проверить определенное условие, а затем отменить вставку, если условие не соответствует требованию. –