【发布时间】:2021-11-24 03:51:50
【问题描述】:
我应该在 Oracle SQL 中创建一个触发器
- 将
department_amount列添加到位置表 - 添加注释“包含该位置的部门数量”
- 创建一个触发器,每次从部门插入/删除一行时,它将更新所在位置的部门数量。
表格:
CREATE TABLE departments
(
department_id NUMBER(4) PRIMARY KEY,
department_name VARCHAR2(30) NOT NULL,
manager_id NUMBER(6),
location_id NUMBER(4) NOT NULL
);
CREATE TABLE locations
(
location_id NUMBER(4) PRIMARY KEY,
street_address VARCHAR2(40),
postal_code VARCHAR2(12),
city VARCHAR2(30),
state_province VARCHAR2(25),
country_id CHAR(2) NOT NULL
);
【问题讨论】:
-
在 trigger 中完成所有这些操作似乎是一个非常糟糕的主意 - 为什么要在 inside中执行此操作> 触发器?似乎完全错误的地方......你的结构中的修改不应该不被放入触发器(它们可能会一遍又一遍地执行,而没有你的控制!)
-
这是一个 sql 培训,但我有点卡在触发器部分这就是我做这个问题的原因。它不是为了工作或只是为了教育目的
-
嗯,要点是:不要在触发器中进行结构修改!从来没有。