Подтвердить что ты не робот

запускать триггер после обновления определенных столбцов в mysql

В MySQL я хочу запустить триггер после обновления определенных столбцов, в Oracle и DB2, я знаю, как это сделать:

CREATE  TRIGGER  myTrigger
AFTER UPDATE of myColumn1,myColumn2 ... ON myTable
FOR EACH ROW
BEGIN
....
END

Как это сделать с MySQL?

4b9b3361

Ответ 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 ...