如何从触发器中的select查询中获取值并在表中插入该值?
答案 0 :(得分:15)
对于INSERT Trigger查询,您将使用对象NEW
对于UPDATE触发器查询,您将使用对象OLD和NEW
对于DELETE触发器查询,您将使用对象OLD
示例1:运行INSERT INTO mytable(num)VALUES(10)的iF;
在INSERT触发器中,您将该列引用为NEW.num(10);
示例2:iF你跑了UPDATE mytable SET num = 41 WHERE num = 10;
在UPDATE触发器中,您引用OLD.num(10)和NEW.num(41)
示例3:运行iF DELETE mytable num = 104;
在DELETE触发器中,您引用OLD.num(104)
使用类似的东西:
DELIMITER $$
create trigger my_trigger
AFTER UPDATE on my_update_table
for each row
begin
DECLARE P1,P2 VARCHAR(50);
SELECT PRICENAME INTO P1 FROM PRICEIES WHERE PRICEID=OLD.PRICEID;
SELECT PRICENAME INTO P2 FROM PRICEIES WHERE PRICEID=NEW.PRICEID;
INSERT INTO AUDITLOG(OLDVALUE, NEWVALUE) VALUES (P1,P2);
end $$
DELIMITER ;