首页 > 解决方案 > pl/sql 创建行级触发器

问题描述

创建一个行级触发器“dep_check”,该触发器在与员工表关联的插入操作之前触发。触发器应检查 Departments 表中是否存在新的 Department_Number。如果Department_Number 在Department 表中不存在,将创建一个新的部门记录('你可以给它命名')并且Department_Number 应该是插入语句中的新值。打印一条消息 'Department # is created' 将 # 替换为 department_no。如果部门已经存在,则触发器应打印“已插入员工记录”。

这是我尝试过的,但它给了我错误

enter code here


 CREATE OR REPLACE TRIGGER dep_check
BEFORE INSERT
ON employees
FOR EACH ROW
BEGIN

if new.department_number in departments THEN
dbms_output.put_line ('Employee record inserted.');

else 
insert into departments values (:new.department_number,:new.employee_id,
         :new.Last_name, :new.first_name, :new.manager_id);
dbms_output.put_line ('department '|| old.department_number || 'is created. '||
'replace the ' || old.department ||' with the '|| new.department_number);
end if;
end;

标签: plsql

解决方案


推荐阅读