MySQL 触发器(Trigger)是一种特殊的存储过程,它会在指定的事件发生时自动执行。这些事件包括 INSERT、UPDATE 和 DELETE 操作。触发器可以在这些操作之前(BEFORE)或之后(AFTER)执行。
假设有两个表 users
和 user_logs
,我们希望在更新 users
表中的数据时,自动在 user_logs
表中记录这些更改。
-- 创建 users 表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(50)
);
-- 创建 user_logs 表
CREATE TABLE user_logs (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
action VARCHAR(10),
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建 AFTER UPDATE 触发器
DELIMITER //
CREATE TRIGGER after_user_update
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
INSERT INTO user_logs (user_id, action) VALUES (OLD.id, 'updated');
END;
//
DELIMITER ;
通过以上信息,您可以更好地理解 MySQL 触发器的概念、优势、类型和应用场景,并解决一些常见问题。
领取专属 10元无门槛券
手把手带您无忧上云