我正在尝试创建一个触发器,它将触发重复键更新,但它不起作用。我的想法是,在每次重复密钥更新时,我想复制历史表中更新行的旧内容。
INSERT INTO t1
(
w1,
w2
)
Select
w1,
w2
from t2
on duplicate key update
w2 = IF(values(w2) is not null and values(w2) != "", VALUES(w2), t1.w2);
触发器:
drop trigger if trigger1;
DELIMITER $$
CREATE
TRIGGER trigger1 before update ON t1
FOR EACH ROW
BEGIN
INSERT INTO history_table
(
w1, -- this is primary key
w2
)
values(
old.w1,
old.w2
);
END$$
DELIMITER ;
是否有人知道如何使其发挥作用,一般情况下是否可行。
我尝试在插入之前启动触发器并且它没有工作。
谢谢
答案 0 :(得分:0)
如果你在history_table.w1上有主键并且你做了一次更新,假设w1 = 1,则因为"重复输入"而不会记录w1 = 1的下一次更新。错误