MySQL触发器是一种特殊的存储过程,它会在指定的事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以在表上定义,用于执行一些额外的操作,这些操作通常与数据修改事件相关。
MySQL触发器主要有以下几种类型:
以下是一个简单的MySQL触发器示例,当在employees表中插入新记录时,自动在employee_log表中记录一条日志:
-- 创建员工表
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
salary DECIMAL(10, 2)
);
-- 创建员工日志表
CREATE TABLE employee_log (
log_id INT AUTO_INCREMENT PRIMARY KEY,
employee_id INT,
action VARCHAR(10),
log_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建触发器
DELIMITER //
CREATE TRIGGER after_employee_insert
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
INSERT INTO employee_log (employee_id, action) VALUES (NEW.id, 'INSERT');
END //
DELIMITER ;通过以上信息,您可以更好地理解MySQL触发器的概念、优势、类型、应用场景以及常见问题的解决方法。