Поле назначения Mysql Trigger IF изменено - PullRequest
0 голосов
/ 31 марта 2012

Я хотел бы запустить триггер UPDATE, только если определенные поля были изменены. Возможно ли это сделать с помощью оператора if; выполнить определенный запрос.

Пример (не работает, как показано):

DROP TRIGGER IF EXISTS `catch_mytable_update`//
CREATE TRIGGER `catch_mytable_update` AFTER UPDATE ON `mytable`
 FOR EACH ROW BEGIN

IF (old.name != new.name) THEN

DELETE FROM trigger WHERE tablename='mytable' AND rowid = new.id;
INSERT INTO trigger (tablename, rowid, cmd, cmduser, time) VALUES('mytable', new.id, 'UPDATE', CURRENT_USER(), NOW());

ENDIF//

END//

Разделитель: //

1 Ответ

1 голос
/ 31 марта 2012

Попробуйте изменить:

    IF (name.old != name.new) THEN

до:

    IF old.name != new.name THEN
...