在MySQL中,NEW
和OLD
是触发器(Triggers)中的特殊关键字,它们用于引用触发器执行时涉及的数据行的当前值和之前的值。
NEW
表示将要插入的新数据行。在UPDATE触发器中,NEW
表示更新后的数据行。OLD
表示将要删除的数据行。在UPDATE触发器中,OLD
表示更新前的数据行。使用NEW
和OLD
关键字可以方便地在触发器中对数据行的变化进行监控和处理,从而实现复杂的数据完整性约束、审计日志记录、数据转换等功能。
NEW
来访问新插入的数据。OLD
来访问更新前的数据,使用NEW
来访问更新后的数据。OLD
来访问被删除的数据。假设我们有一个订单表orders
,我们希望在每次更新订单状态时记录一条日志。可以使用UPDATE触发器来实现这一功能:
CREATE TRIGGER after_order_update
AFTER UPDATE ON orders
FOR EACH ROW
BEGIN
IF OLD.status <> NEW.status THEN
INSERT INTO order_logs (order_id, old_status, new_status, update_time)
VALUES (OLD.id, OLD.status, NEW.status, NOW());
END IF;
END;
在这个示例中,我们创建了一个名为after_order_update
的触发器,它在orders
表更新后执行。如果订单状态发生了变化(即OLD.status
不等于NEW.status
),则向order_logs
表插入一条日志记录。
SHOW TRIGGERS
命令查看已创建的触发器列表。通过合理使用NEW
和OLD
关键字以及触发器功能,可以增强MySQL数据库的数据处理能力和灵活性。
没有搜到相关的文章