Синтаксис синтаксиса "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. Каков правильный синтаксис, может ли кто-нибудь указать мне на некоторые примеры.
Ответы
Ответ 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 ;