Trigger d'insertion sur une vue
salut
j'ai créé une table employer
Code:
1 2
| create table employer(empno number(4),empname varchar2(15),no_tel varchar2(10)
,date_naiss date,salaire number,deptno number); |
puis une table emp2
Code:
create table emp2 as select * from employer where empno> 100
puis une vue comme un shéma global des deux tables
Code:
1 2 3 4 5
| create view v_emp
as
select * from employer
union all
select * from emp2; |
puis j'ai créé un trigger pour faire l'insertion sur la vue
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| create or replace trigger tr_insert
instead of insert on v_emp
begin
if :old.empno>100 then
insert into emp2 values(:new.empno, :new.empname, :new.no_tel,:new.date_naiss,
:new.salaire,:new.deptno);
else
insert into employer values(:new.empno, :new.empname, :new.no_tel,:new.date_naiss,
:new.salaire,:new.deptno);
end if;
end; |
soit avec new ou old le résultat d'insertion est la même chose lorsque j'écris ça :
Code:
insert into v_emp values(500,'500','500','22-2-2009',500,500);
empno = 500 , normalement l'insertion se fait sur la table emp 2
mais il a fait sur la table employer malgré la condition est clair : if :old.empno>100