【发布时间】:2020-04-24 23:19:30
【问题描述】:
每当 TABLE_A 在同一 ID 的“已付款”列上更新时,我都需要更新该特定 ID 中“已付款”列上的 TABLE_B。
我正在尝试使用触发器考虑一些解决方案,但不知道如何。
【问题讨论】:
-
这听起来像是冗余/糟糕的设计
标签: mysql sql sql-update database-trigger
每当 TABLE_A 在同一 ID 的“已付款”列上更新时,我都需要更新该特定 ID 中“已付款”列上的 TABLE_B。
我正在尝试使用触发器考虑一些解决方案,但不知道如何。
【问题讨论】:
标签: mysql sql sql-update database-trigger
你似乎想要这样的东西:
delimiter //
create trigger mytrigger
after update on table_a
for each row
begin
if not (new.paid <=> old.paid) then
update table_b set paid = new.paid where id = new.id;
end if;
end;
//
delimiter ;
触发器在table_b 上的每个update 之后触发。 if 条件检查列 paid 的值是否发生变化,如果发生变化,则将 table_b 中的列 paid 更新为 id 与 id 匹配的行上的相同值更新了table_a 中的行。
【讨论】:
id 上建立索引以加快更新速度。