插入或更新行时更新mysql表

时间:2015-04-15 13:50:05

标签: mysql triggers

我有三张桌子。

第一张表取件

    ----------------
   id  | no |    date   |
   --------------------
    2  | a  |  15/02/15 |
    2  | b  |  18/02/15 |
    2  | c  |  19/02/15 |
    3  | d  |           |
    2  | e  |           |
    ---------------

第二张表曲目

    ----------------
   id  | no |    date   |
   --------------------
    2  | a  |  15/02/15 |
    2  | b  |  18/02/15 |
    2  | c  |  19/02/15 |
    3  | d  |           |
    2  | e  |           |
    ---------------

更新代码表中的日期列时,相同的值必须在轨道表上自动更新 WHERE id = id AND no = no 条件

1 个答案:

答案 0 :(得分:1)

您需要两个触发器,一个用于插入:

DELIMITER //
create trigger trackInsert after insert on pickup
for each row
begin
  insert into track values (NEW.id, NEW.no, NEW.`date`);
end//
DELIMITER ;

然后一个用于更新:

DELIMITER //
create trigger trackUpdate after update on pickup
for each row
begin
  update track SET `date` = NEW.`date` WHERE id = NEW.id AND no = NEW.no;
end//
DELIMITER ;

或者,或者,您可以接受以下事实:track包含引用拾取的外键,而不是复制日期值。