MySQL中的触发器(Trigger)是一种特殊的存储过程,它会在指定的表上执行特定的操作(如INSERT、UPDATE或DELETE)时自动执行。触发器可以帮助实现复杂的业务逻辑,确保数据的完整性和一致性。
CREATE TRIGGER trigger_name
trigger_time trigger_event
ON table_name FOR EACH ROW
BEGIN
-- 触发器的逻辑代码
END;
trigger_name
:触发器的名称。trigger_time
:触发器执行的时间,可以是BEFORE或AFTER。trigger_event
:触发器响应的事件,可以是INSERT、UPDATE或DELETE。table_name
:触发器作用的表名。FOR EACH ROW
:表示对每一行数据执行触发器。假设我们有一个名为employees
的表,结构如下:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
salary DECIMAL(10, 2)
);
我们希望在每次更新员工薪水时,自动记录薪水的变化。可以创建一个触发器来实现这个功能:
DELIMITER $$
CREATE TRIGGER salary_change_trigger
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 ;
在这个示例中:
salary_change_trigger
是触发器的名称。AFTER UPDATE
表示在更新操作之后执行触发器。employees
是触发器作用的表名。salary_history
表中。希望这些信息对你有所帮助!如果你有更多关于MySQL触发器或其他技术的问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云