Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql触发器怎么创建

作者:尛丸子的天真▍我学不会゜   发布日期:2025-10-26   浏览:70

-- 创建触发器的示例代码

-- 假设我们有一个名为 `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,
    salary DECIMAL(10, 2),
    change_date DATETIME
);

-- 然后,我们创建一个触发器,在插入新员工时自动记录工资信息:
DELIMITER $$

CREATE TRIGGER after_employee_insert
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
    -- 将新员工的工资记录到 salary_history 表中
    INSERT INTO salary_history (employee_id, salary, change_date)
    VALUES (NEW.id, NEW.salary, NOW());
END$$

DELIMITER ;

-- 解释说明:
-- 1. `DELIMITER $$`:更改语句结束符为 `$$`,以便在触发器定义中使用分号。
-- 2. `CREATE TRIGGER after_employee_insert`:创建一个名为 `after_employee_insert` 的触发器。
-- 3. `AFTER INSERT ON employees`:指定触发器在 `employees` 表上执行插入操作之后触发。
-- 4. `FOR EACH ROW`:表示触发器会针对每一行数据触发。
-- 5. `BEGIN ... END`:触发器体,包含要执行的操作。
-- 6. `INSERT INTO salary_history`:将新插入的员工信息插入到 `salary_history` 表中。
-- 7. `NEW.id` 和 `NEW.salary`:引用插入的新行中的列值。
-- 8. `NOW()`:获取当前时间。
-- 9. `DELIMITER ;`:恢复默认的语句结束符。

上一篇:mysql查询正在执行的sql

下一篇:mysql delete 语句

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

unsigned在mysql中是什么意思

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站