MySQL触发器是一种特殊的存储过程,它会在指定的事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以帮助你实现复杂的业务规则,确保数据的完整性和一致性。
触发器由三部分组成:
假设我们有一个名为employees的表,结构如下:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
salary DECIMAL(10, 2)
);我们希望在每次更新员工薪水时,自动记录变更前后的薪水到另一个表salary_history中。
首先,创建salary_history表:
CREATE TABLE salary_history (
employee_id INT,
old_salary DECIMAL(10, 2),
new_salary DECIMAL(10, 2),
change_date TIMESTAMP
);然后,编写触发器:
DELIMITER $$
CREATE TRIGGER after_salary_update
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
IF OLD.salary <> NEW.salary THEN
INSERT INTO salary_history (employee_id, old_salary, new_salary, change_date)
VALUES (OLD.id, OLD.salary, NEW.salary, NOW());
END IF;
END$$
DELIMITER ;after_salary_update的触发器。employees表更新后执行。salary_history表中。通过以上步骤,你可以在MySQL中创建一个触发器,实现数据变更时的自动记录和处理。
没有搜到相关的文章