【发布时间】:2011-06-29 19:33:52
【问题描述】:
如何从触发器中的选择查询中获取值并将该值插入到表中?
【问题讨论】:
如何从触发器中的选择查询中获取值并将该值插入到表中?
【问题讨论】:
对于 INSERT 触发器查询,您将使用对象 NEW
对于 UPDATE 触发器查询,您将使用对象 OLD 和 NEW
对于删除触发器查询,您将使用对象 OLD
示例 1:如果您运行 INSERT INTO mytable (num) VALUES (10);
在 INSERT 触发器中,您将该列引用为 NEW.num (10);
示例 2:如果您运行 UPDATE mytable SET num = 41 WHERE num = 10;
在 UPDATE 触发器中,您引用 OLD.num (10) 和 NEW.num (41)
示例 3:如果您运行 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 ;
【讨论】: