plsql - 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;
解决方案
推荐阅读
- angular - 当我在 Angular 项目中执行 npm install 时创建/修改了哪些文件?(在我的情况下,角度为 8)
- android - 如何遍历数据绑定器已知的所有视图?
- python - 导入 Tkinter 文件后如何继续运行代码?
- java - 有人能告诉我为什么我的代码中出现 java.lang.ArrayIndexOutOfBoundsException 错误吗?
- arrays - 如何在 Julia 中连接不同大小的向量?
- python - 有没有办法让 python 检测字母字符并产生错误消息?
- r - renderPlot 在视图中输出绘图,而不是浏览器
- c++ - 具有参数的模板的特化
- python - 为什么静音命令在 Discord.py 中不起作用?
- mysql - django.db.utils.OperationalError 1101. JSON 列不能有默认值