2013-05-02 2 views
3

Я пытаюсь создать триггер для вставки новой строки условно на основе вставки в другой таблице ... Я не могу прикрыть синтаксис. Вот то, что я до сих пор:Триггер mysql не работает?

DELIMETER $$ 
CREATE TRIGGER overPricedCar 
    AFTER INSERT ON cars 
    FOR EACH ROW 
    BEGIN 
     IF (new.sellPrice > '80000')THEN 
     INSERT INTO listings VALUES(new.carName,'GOLD','0',' '); 
     END IF; 
    END$$ 
DELIMETER ; 

По какой-то причине, я получаю сообщение об ошибке, они синтаксически, кажется, хорошо, я не знаю, где я, возможно, не так.

EDIT

После устранения опечатки, триггер 'работает'.

Я добавил комментарий для вывода при срабатывании триггера. я испытал его, и выходное сообщение печатается на экране, но триггер не на самом деле завершения вставки:

DELIMITER $$ 
CREATE TRIGGER overPricedCar 
    BEFORE INSERT ON cars 
    FOR EACH ROW 
    BEGIN 
     IF (new.sellPrice > '80000')THEN 
     INSERT INTO listings VALUES(new.carName,'GOLD','0',' '); 
     SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "New Gold car!"; // this line throws it off 
     END IF; 
    END$$ 
DELIMITER ; 

Где можно разместить сообщения, которые я хочу быть выведен на экран, когда этот триггер запускается ?

+0

и ошибка ?? – jcho360

+0

@ jcho360 # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи «разделителей $$ CREATE TRIGGER overPricedCar ПОСЛЕ ВСТАВИТЬ на автомобилях ДЛЯ КАЖДОЙ ROW B» в строке 1 – shnozolla

+0

что ошибка? –

ответ

5

опечатка:

DELIMETER 
    ^--- should be an I: DELIMITER 
+0

#WTF? как вы это видели? !! nice job +1 – jcho360

+0

Wow! эти опечатки убивают меня! Я не мог найти проблему, я собираюсь напечатать огромный знак и повесить его перед моим столом «CHECK FOR TYPOS» tnx. – shnozolla

+0

@Marc B Когда я вставляю триггер, записи не записываются (ни на «автомобиль», ни на таблицу «списки»), но сообщение срабатывает? – shnozolla

Смежные вопросы