-- 创建触发器的示例代码
-- 假设我们有一个名为 `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 语句
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站