我想使用触发器将最后更新的行插入到新表中?如果该表中的任何列(值)已更新或更改,如何获取该行?
我正在使用此代码
CREATE TRIGGER `database`.`tbl1_AFTER_UPDATE`
AFTER UPDATE
ON `tbl1`
FOR EACH ROW
BEGIN
INSERT INTO tbl2 (c1,c2,c3)
SELECT
c1,c2,c3 from tbl1;
END
但这是将tbl1中的所有行插入到tbl2中,我只希望将更新的行插入到tbl2中
答案 0 :(得分:1)
在触发器主体中,OLD和NEW关键字使您可以访问受触发器影响的行中的列。 OLD和NEW是触发器的MySQL扩展;它们不区分大小写。Trigger
DELIMITER $$
CREATE TRIGGER `database`.`tbl1_AFTER_UPDATE`
AFTER UPDATE
ON `tbl1`
FOR EACH ROW
BEGIN
INSERT INTO tbl2 (c1,c2,c3) VALUES (OLD.c1,OLD.c2,OLD.c3);
END $$
DELIMITER ;