Можно ли вставить в ту же таблицу, к которой вы применяете триггер после обновления? Mysql - PullRequest
0 голосов
/ 28 мая 2020

Так что у меня есть проблема понимания здесь. Буду очень признателен, если вы поможете мне прояснить мое замешательство. Итак, у меня есть 2 таблицы table_1 и table_2, где обе таблицы имеют те же столбцы, что и автоматическое увеличение id pk и varchar (20). Допустим, у меня уже есть триггер после вставки в table_1, где все, что я вставляю в table_1, также хранит ту же копию в table_2. Теперь я хотел применить триггер обновления к той же таблице (table_1), чтобы контролировать, если кто-то пытается изменить имя в table_1, он должен взять имя из table_2 и вставить правильное имя обратно в table_1. Надеюсь, я хорошо это объяснил. Я поделюсь созданным мной триггером после обновления, который не сработал. Буду более чем счастлив, если вы поможете. Спасибо

delimiter $$ 
CREATE TRIGGER `Practice`.`table_1_after_UPDATE` AFTER UPDATE ON `table_1` FOR EACH ROW
BEGIN
if  old.name != new.name  then
update table_1 
set name = table_2.name
where id = table_2.id;
end if;
END$$
delimiter ;

1 Ответ

0 голосов
/ 28 мая 2020
CREATE TRIGGER `Practice`.`table_1_BEFORE_UPDATE` 
BEFORE UPDATE 
ON `table_1` 
FOR EACH ROW
set NEW.name = OLD.name;
...