в Oracle есть подобные конструкции а можно ли такое сделать и в mysql?
Как сделать триггер mysql update при изменении определенного поля, а не всей строки
CREATE TRIGGER tab.event
BEFORE
INSERT OR UPDATE OF id, tex ON tab.emp
FOR EACH ROW
CREATE
DEFINER = 'root'@'127.0.0.1'
TRIGGER baza.logevent
AFTER UPDATE
ON baza.user
FOR EACH ROW
BEGIN
IF (@DISABLE_TRIGGERS IS NULL) and (OLD.status <> NEW.status) THEN
INSERT INTO feed Set feed.id_event = NEW.id , feed.userId = NEW.Id;
INSERT INTO changestatus Set changestatus.id_user = NEW.id , changestatus.text_status = OLD.status;
END IF;
END
как вариант можно делать проверку на изменилось ли поле или нет (OLD.status <> NEW.status)
При этом не забывайте о том каки значения в каом тип события (INSERT UPDATE DELETE before-after) могут быть

Комментарии
Оставить комментарий
Базы данных - MySql (Maria DB)
Термины: Базы данных - MySql (Maria DB)