Auto commit
This commit is contained in:
parent
6aa71ed621
commit
68e4508eaf
@ -284,12 +284,32 @@ WHERE e.emp_id = 1;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### 练习题 7: 自动计算工龄
|
#### 练习题 7: 自动计算工龄
|
||||||
|
|
||||||
创建一个触发器 `before_employee_insert`,在插入 `employee` 表数据时,自动计算员工的工龄(以年为单位),并将其存储到一个新字段 `years_of_service` 中。
|
创建一个触发器 `before_employee_insert`,在插入 `employee` 表数据时,自动计算员工的工龄(以年为单位),并将其存储到一个新字段 `years_of_service` 中。
|
||||||
|
|
||||||
|
```sql
|
||||||
|
ALTER TABLE employee ADD years_of_service INT;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
DROP TRIGGER IF EXISTS before_employee_insert;
|
||||||
|
CREATE TRIGGER before_employee_insert
|
||||||
|
BEFORE INSERT ON employee
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
SET NEW.years_of_service = TIMESTAMPDIFF(YEAR,NEW.hire_date,NOW());
|
||||||
|
END $$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
SELECT TIMESTAMPDIFF(YEAR,e.hire_date,NOW())
|
||||||
|
FROM employee e;
|
||||||
|
|
||||||
|
INSERT INTO employee
|
||||||
|
VALUES(DEFAULT, '雷昊', 60000.00, '2022-12-31', 1, 1, NULL);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### 练习题 8: 防止删除部门
|
#### 练习题 8: 防止删除部门
|
||||||
|
|
||||||
创建一个触发器 `before_department_delete`,在删除 `department` 表数据之前,检查该部门是否还有员工。如果有员工,阻止删除并抛出错误。
|
创建一个触发器 `before_department_delete`,在删除 `department` 表数据之前,检查该部门是否还有员工。如果有员工,阻止删除并抛出错误。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user