MySQL 触发器(Trigger)是一种特殊的存储过程,它会在指定的事件发生时自动执行。这些事件包括 INSERT、UPDATE 和 DELETE 操作。触发器可以在同一个数据库中的特定表上定义,并且可以在这些操作之前(BEFORE)或之后(AFTER)执行。
假设我们有两个表:orders
和 order_history
。每当 orders
表中的数据更新时,我们希望自动将更新记录到 order_history
表中。
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
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元无门槛券
手把手带您无忧上云