запускать триггер после обновления определенных столбцов в mysql
В MySQL я хочу запустить триггер после обновления определенных столбцов, в Oracle и DB2, я знаю, как это сделать:
CREATE TRIGGER myTrigger
AFTER UPDATE of myColumn1,myColumn2 ... ON myTable
FOR EACH ROW
BEGIN
....
END
Как это сделать с MySQL?
Ответы
Ответ 1
Вы не можете запускать определенное обновление столбца в SQL. Он применяется в строке.
Вы можете поместить свое условие для columm в свой триггер, как показано ниже:
DELIMITER //
CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
if NEW.column1 <=> OLD.column1 THEN
--type your statements here
END IF;
END;//
DELIMITER ;
Ответ 2
В качестве решения мне понравилось:
CREATE TRIGGER myTrigger
AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
IF NEW.myColumn1 <> OLD.myColumn1 || NEW.myColumn2 <> OLD.myColumn2
then
.....
END IF
END
Ответ 3
Вы не можете указывать только для активации определенных изменений столбца. Но для рекордного изменения на столе вы можете сделать
delimiter |
CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
...
END
|
delimiter ;
В вашем триггере вы можете ссылаться на старый и новый контент столбца, подобного этому
if NEW.column1 <> OLD.column1 ...