Auto commit

This commit is contained in:
smallkun 2025-03-20 19:11:16 +08:00
parent 1b42d49ba9
commit 6733da3ec5

View File

@ -128,11 +128,11 @@ BEFORE INSERT ON employee
FOR EACH ROW
BEGIN
IF NEW.salary < (
IF NEW.salary > (
SELECT j.max_salary
FROM job j
WHERE j.job_id = NEW.job_id
) OR NEW.salary > (
) OR NEW.salary < (
SELECT j.min_salary
FROM job j
WHERE j.job_id = NEW.job_id
@ -153,6 +153,30 @@ VALUES(DEFAULT, '雷昊', 0, NOW(), 1, 1);
创建一个触发器 `after_employee_insert`,在插入 `employee` 表数据之后,自动更新 `department` 表中的部门人数(假设 `department` 表新增一个字段 `employee_count`)。
```sql
ALTER TABLE department ADD employee_count INT UNSIGNED;
DELIMITER $$
DROP TRIGGER IF EXISTS after_employee_insert;
CREATE TRIGGER after_employee_insert
AFTER INSERT ON employee
FOR EACH ROW
BEGIN
UPDATE department d
SET d.employee_count = (
SELECT COUNT(*)
FROM employee e
WHERE e.dept_id = d.dept_id
);
END $$
DELIMITER ;
INSERT INTO employee
VALUES(DEFAULT, '雷昊', 60000.00, NOW(), 1, 1);
```
#### 练习题 3: 工资变更日志
创建一个触发器 `after_employee_update`,在更新 `employee` 表的 `salary` 字段后,将变更记录插入到一个新的日志表 `salary_log` 中,记录员工 ID、旧工资、新工资和变更时间。