Auto commit

This commit is contained in:
smallkun 2025-03-20 19:29:28 +08:00
parent 6733da3ec5
commit 26b0159c32

View File

@ -181,6 +181,35 @@ VALUES(DEFAULT, '雷昊', 60000.00, NOW(), 1, 1);
创建一个触发器 `after_employee_update`,在更新 `employee` 表的 `salary` 字段后,将变更记录插入到一个新的日志表 `salary_log` 中,记录员工 ID、旧工资、新工资和变更时间。 创建一个触发器 `after_employee_update`,在更新 `employee` 表的 `salary` 字段后,将变更记录插入到一个新的日志表 `salary_log` 中,记录员工 ID、旧工资、新工资和变更时间。
```sql
DROP TABLE IF EXISTS salary_log;
CREATE TABLE salary_log(
emp_id INT,
old_salary DECIMAL(10, 2),
new_slaray DECIMAL(10, 2),
update_date DATE
);
DELIMITER $$
DROP TRIGGER IF EXISTS after_employee_update;
CREATE TRIGGER after_employee_update
BEFORE UPDATE ON employee
FOR EACH ROW
BEGIN
IF NEW.salary <> OLD.salary THEN
INSERT INTO salary_log()
VALUES(NEW.emp_id, OLD.salary, NEW.salary, NOW());
END IF;
END $$
DELIMITER ;
UPDATE employee e
SET e.salary = 10
WHERE e.emp_id = 1;
```
#### 练习题 4: 删除员工时备份数据 #### 练习题 4: 删除员工时备份数据
创建一个触发器 `before_employee_delete`,在删除 `employee` 表数据之前,将被删除的员工数据插入到一个备份表 `employee_backup` 中。 创建一个触发器 `before_employee_delete`,在删除 `employee` 表数据之前,将被删除的员工数据插入到一个备份表 `employee_backup` 中。