MySQL 触发器(Trigger)是一种特殊的存储过程,它会在指定的事件(如 INSERT、UPDATE 或 DELETE)发生时自动执行。触发器可以用于在数据变更前后执行特定的逻辑,以实现数据的完整性检查、日志记录、数据转换等功能。
MySQL 触发器主要有以下几种类型:
假设有一个 users 表和一个 user_logs 表,我们希望在每次插入或更新 users 表时,自动记录日志到 user_logs 表。
-- 创建 users 表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(50)
);
-- 创建 user_logs 表
CREATE TABLE user_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
action VARCHAR(10),
action_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建 INSERT 触发器
DELIMITER //
CREATE TRIGGER after_user_insert
AFTER INSERT ON users
FOR EACH ROW
BEGIN
INSERT INTO user_logs (user_id, action) VALUES (NEW.id, 'INSERT');
END;
//
DELIMITER ;
-- 创建 UPDATE 触发器
DELIMITER //
CREATE TRIGGER after_user_update
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
INSERT INTO user_logs (user_id, action) VALUES (NEW.id, 'UPDATE');
END;
//
DELIMITER ;通过以上内容,您可以全面了解 MySQL 表多个触发器的基础概念、优势、类型、应用场景以及常见问题及解决方法。
没有搜到相关的文章