我成功地执行该代码:触发在PL/SQL更新
CREATE or replace TRIGGER dept_no_exist
BEFORE insert OR UPDATE on emp
for each row
DECLARE
x_count NUMBER;
begin
select count(*) into x_count from dept where deptno=:new.deptno;
if(x_count=0) then
insert into dept values(:new.deptno,'A SAISIR','A SAISIR');
end if;
end;
/
基本上就是我想要做的是正uplet(:new.deptno,'A SAISIR','A SAISIR'
)插入到表deptno
当一个员工(表emp)受影响到部门中不存在的部门。我的触发器适用于插入查询,但不适用于更新查询。
你在逻辑上是错误的,而更新'count(*)'不会是0.因此它不会'插入'在'dept'表 – Exhausted 2015-02-09 08:03:58
好吧,但为什么它插入语句呢?因为我已经为这两个陈述写了“BEFORE” – Neo 2015-02-09 08:05:55
@Exhausted - 为什么计算'dept'会受到针对'emp'的语句类型的影响? – 2015-02-09 08:06:50