Синтаксис синтаксиса "update on column" в MySQL - программирование
Подтвердить что ты не робот

Синтаксис синтаксиса "update on column" в MySQL

Можно ли использовать триггер MySQL для обновления определенных столбцов, который обновляет другой столбец в одной таблице (той же строке)

create trigger my_trigger
BEFORE UPDATE OF col1, col2 ON TABLE_NAME
for each row
set NEW.col3 =  NEW.col3 +1;

Я попробовал приведенный выше код с помощью UPDATE OF col1, col2. Он не работает в MySQL. Каков правильный синтаксис, может ли кто-нибудь указать мне на некоторые примеры.

4b9b3361

Ответ 1

Вы не можете указать, что триггер должен запускаться только при обновлении определенных столбцов (UPDATE влияет на всю запись), но вы можете проверить, какие столбцы были обновлены в вашем триггере:

DELIMITER ;;

CREATE TRIGGER my_trigger BEFORE UPDATE ON TABLE_NAME FOR EACH ROW
IF NOT (NEW.col1 <=> OLD.col1 AND NEW.col2 <=> OLD.col2) THEN
  SET NEW.col3 = NEW.col3 + 1;
END IF;;

DELIMITER ;