2013-03-18 3 views
0

Я пытаюсь создать триггер, поэтому, когда строка «FirstName» update в таблице «order», новое значение будет сохранено в триггерах таблицы. FirstName.MySQL запускает старый и новый запрос

Я построил MySQL запрос таким образом, однако я получаю «У вас есть ошибка в синтаксисе SQL»; Я предполагаю, что я делаю что-то неправильно:

DELIMITER $$ 
CREATE TRIGGER when_updated 
BEFORE UPDATE 
ON order 
FOR EACH ROW 
BEGIN 
INSERT INTO triggers (timestamp, FirstName) VALUES (now(), NEW.FirstName) 
END$$ 
DELIMITER; 

ответ

2

вы не прекратившая INSERT заявление,

DELIMITER $$ 
CREATE TRIGGER when_updated 
BEFORE UPDATE ON `order` FOR EACH ROW 
BEGIN 
    INSERT INTO triggers (timestamp, FirstName) 
    VALUES (now(), NEW.FirstName); 
           --^HERE 
END$$ 
DELIMITER; 

ТАКЖЕ, ORDER является зарезервированным ключевым словом. Отмените его с помощью backtick, чтобы его можно было использовать как имя таблицы.

+0

INSERT INTO триггеры (timestamp, FirstName) VALUES (now(), NEW.FirstName); Не могли бы вы рассказать мне, что еще мне нужно прекратить? – kajab

+0

спасибо большое, работал как сон! – kajab

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