MySQL中的触发器(Trigger)是一种特殊的存储过程,它会在指定的事件发生时自动执行。这些事件可以是INSERT、UPDATE或DELETE操作。触发器可以在这些操作之前(BEFORE)或之后(AFTER)执行。
假设我们有一个orders
表和一个order_history
表,我们希望在每次更新orders
表时,自动将更新记录到order_history
表中。
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_name VARCHAR(100),
order_status VARCHAR(50)
);
CREATE TABLE order_history (
history_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
old_status VARCHAR(50),
new_status VARCHAR(50),
change_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
DELIMITER //
CREATE TRIGGER after_orders_update
AFTER UPDATE ON orders
FOR EACH ROW
BEGIN
INSERT INTO order_history (order_id, old_status, new_status)
VALUES (OLD.order_id, OLD.order_status, NEW.order_status);
END;
//
DELIMITER ;
请注意,虽然这里提供了关于MySQL触发器的详细解释和示例,但在实际应用中,还需要根据具体需求和场景进行设计和优化。
领取专属 10元无门槛券
手把手带您无忧上云