instead of触发器问题,请教高手指点。谢谢
SQL> create or replace trigger tr_instead_of_dept_emp
2 instead of insert on dept_emp
3 for each row
4 declare
5 v_temp int;
6 begin
7 select count(*) into v_temp from dept where deptno=:new.deptno;
8 if v_temp=0 then
9 insert into dept(deptno,dname) values(:new.deptno,:new.dname);
10 end if;
11 select count(*) into v_temp from emp where empno=:new.empno;
12 if v_temp=0 then
13 insert into emp(empno,ename,deptno) values(:new.empno,:new.ename,:new.deptno);
14 end if;
15 end;
16 /触发器已创建SQL> insert into dept_emp values(50,'adim','1342','ary');已创建 1 行。SQL> insert into dept_emp values(10,'adim','1224','eofe');已创建 1 行。
问题:我查询emp表时发现多了两条数据。可是为什么dept表没有增加数据呢???
SQL> create or replace trigger tr_instead_of_dept_emp
2 instead of insert on dept_emp
3 for each row
4 declare
5 v_temp int;
6 begin
7 select count(*) into v_temp from dept where deptno=:new.deptno;
8 if v_temp=0 then
9 insert into dept(deptno,dname) values(:new.deptno,:new.dname);
10 end if;
11 select count(*) into v_temp from emp where empno=:new.empno;
12 if v_temp=0 then
13 insert into emp(empno,ename,deptno) values(:new.empno,:new.ename,:new.deptno);
14 end if;
15 end;
16 /触发器已创建SQL> insert into dept_emp values(50,'adim','1342','ary');已创建 1 行。SQL> insert into dept_emp values(10,'adim','1224','eofe');已创建 1 行。
问题:我查询emp表时发现多了两条数据。可是为什么dept表没有增加数据呢???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货