Auto commit
This commit is contained in:
parent
1b42d49ba9
commit
6733da3ec5
@ -128,11 +128,11 @@ BEFORE INSERT ON employee
|
|||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
IF NEW.salary < (
|
IF NEW.salary > (
|
||||||
SELECT j.max_salary
|
SELECT j.max_salary
|
||||||
FROM job j
|
FROM job j
|
||||||
WHERE j.job_id = NEW.job_id
|
WHERE j.job_id = NEW.job_id
|
||||||
) OR NEW.salary > (
|
) OR NEW.salary < (
|
||||||
SELECT j.min_salary
|
SELECT j.min_salary
|
||||||
FROM job j
|
FROM job j
|
||||||
WHERE j.job_id = NEW.job_id
|
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`)。
|
创建一个触发器 `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: 工资变更日志
|
#### 练习题 3: 工资变更日志
|
||||||
|
|
||||||
创建一个触发器 `after_employee_update`,在更新 `employee` 表的 `salary` 字段后,将变更记录插入到一个新的日志表 `salary_log` 中,记录员工 ID、旧工资、新工资和变更时间。
|
创建一个触发器 `after_employee_update`,在更新 `employee` 表的 `salary` 字段后,将变更记录插入到一个新的日志表 `salary_log` 中,记录员工 ID、旧工资、新工资和变更时间。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user