问题如下:任何部门最多允许50名员工
我的老师说下面的触发器不是解决方案,但我没有理解,所以他向我们展示了使用行级触发器和包(因为突变)的另一种解决方案。
下面的触发器不按预期方式运行的情况是什么?我真的想不出一个。
谢谢!
CREATE OR REPLACE TRIGGER pb10_trp AFTER
INSERT OR UPDATE OF department_id ON employees
DECLARE
nr NUMBER;
BEGIN
SELECT
MAX(COUNT(employee_id) )
INTO
nr
FROM
employees
GROUP BY
department_id;
IF
nr > 50
THEN
raise_application_error(-20456,'Too many employees!');
END IF;
END;
答案 0 :(得分:0)
问题的完整案例如下: - 表格后面可以添加“每个部门不超过50名员工”
说到这里,提供的解决方案不正确,因为如果某个部门在启用此触发器时拥有超过50名员工,则任何人都无法再对该表执行插入或更新操作。
例如: