ошибка при создании триггера на операции обновления в mysql5? - PullRequest
1 голос
/ 16 февраля 2011

Я создаю триггер при операции обновления. Однако при создании триггера в MySQL5 выдает ошибку.

Trigger:

CREATE TRIGGER `test`.`Employee_Trigger_Update`
     AFTER UPDATE ON `test`.`employee`
     FOR EACH ROW
     BEGIN
     INSERT into `test`.`Employee_log`
     (id,description)
     VALUES 
     (old.id, CONCAT('Id with '
                       , old.id
                       ,' is modified from '
                       , OLD.start_date
                       , ' to '
                       , NEW.start_date)    );

Error

Код ошибки: 1064 Ошибка в синтаксисе SQL; проверить руководство, которое соответствует вашей версии сервера MySQL для права синтаксис для использования рядом с '' в строке 8 (0 мс)

Если кто-то может помочь, это будет с благодарностью

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011

Вам нужно использовать другой разделитель, кроме точки с запятой

DELIMITER $$

CREATE TRIGGER `test`.`Employee_Trigger_Update`
     AFTER UPDATE ON `test`.`employee`
     FOR EACH ROW
     BEGIN
     INSERT into `test`.`Employee_log`
     (id,description)
     VALUES 
     (old.id, CONCAT('Id with ',old.id,' is modified from ',OLD.start_date, ' to ', NEW.start_date));
END $$

DELIMITER ;
1 голос
/ 16 февраля 2011

одна вещь, которую я вижу, у вас нет - END; в конце объявления триггера, см. Примеры и документацию здесь

...