如何从mysql5中的触发器中的select查询中获取值?

时间:2011-02-18 12:53:22

标签: mysql sql triggers

如何从触发器中的select查询中获取值并在表中插入该值?

1 个答案:

答案 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 ;