From 95aa201cf49fd485a106059bd67a9949b28c9096 Mon Sep 17 00:00:00 2001 From: smallkun Date: Thu, 20 Mar 2025 19:37:29 +0800 Subject: [PATCH] Auto commit --- 2207/触发器练习题.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/2207/触发器练习题.md b/2207/触发器练习题.md index 232d692..03e6ac6 100644 --- a/2207/触发器练习题.md +++ b/2207/触发器练习题.md @@ -214,6 +214,29 @@ WHERE e.emp_id = 1; 创建一个触发器 `before_employee_delete`,在删除 `employee` 表数据之前,将被删除的员工数据插入到一个备份表 `employee_backup` 中。 +```sql +CREATE TABLE employee_backup AS +SELECT * +FROM employee +WHERE 0; + +DELIMITER $$ +DROP TRIGGER IF EXISTS before_employee_delete; +CREATE TRIGGER before_employee_delete +BEFORE DELETE ON employee +FOR EACH ROW +BEGIN + INSERT INTO employee_backup() + VALUES(OLD.emp_id, OLD.emp_name, OLD.salary, OLD.hire_date, OLD.dept_id, OLD.job_id); +END $$ +DELIMITER ; + +DELETE FROM employee +WHERE emp_id = 20; +``` + + + #### 练习题 5: 自动设置默认职位 创建一个触发器 `before_employee_insert`,在插入 `employee` 表数据时,如果未指定 `job_id`,则自动将其设置为 `job` 表中的默认职位(假设默认职位的 `job_id` 为 1)。