MySQL触发器调用过程

2023年 8月 6日 61.1k 0

MySQL触发器是一种特殊的存储过程,它可以在指定的事件发生时自动执行,比如插入、更新或删除操作。当这些事件发生时,MySQL将自动调用触发器。

CREATE TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW trigger_body

MySQL触发器调用过程

创建触发器时需要指定触发器的名称、触发时间、触发事件以及触发器体。其中,触发时间有BEFORE和AFTER两种,触发事件包括INSERT、UPDATE和DELETE三种。

-- 在插入记录前执行计算
CREATE TRIGGER calc_salary BEFORE INSERT ON employee_info
FOR EACH ROW BEGIN
SET NEW.salary = NEW.base_salary + NEW.bonus;
END;

以上是一个触发器示例,当向employee_info表插入记录时,触发器将自动计算新员工的薪水并更新到salary字段中。

在触发器的执行过程中,可以使用NEW和OLD引用新旧记录,以及引用其他表和变量。

-- 在更新记录前判断是否加薪
CREATE TRIGGER check_raise BEFORE UPDATE ON employee_info
FOR EACH ROW BEGIN
DECLARE raise_rate FLOAT(3,2);
SELECT salary/bonus INTO raise_rate FROM salary_info WHERE employee_id = NEW.id;
IF NEW.salary/OLD.salary >raise_rate THEN
SET NEW.salary = OLD.salary * (1 + raise_rate);
END IF;
END;

以上是另一个触发器示例,当employee_info表中的记录更新时,触发器将自动从salary_info表读取当前员工的加薪比例,以及比较当前薪水是否符合加薪标准,如符合则自动将薪水加薪。

总的来说,MySQL触发器可以自动化执行一些常规的操作,极大地简化了开发人员的工作。但要注意避免触发器嵌套过深,影响数据库性能。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论