salut
j'ai créé une table employer
puis une table emp2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 create table employer(empno number(4),empname varchar2(15),no_tel varchar2(10) ,date_naiss date,salaire number,deptno number);
puis une vue comme un shéma global des deux tables
Code : Sélectionner tout - Visualiser dans une fenêtre à part create table emp2 as select * from employer where empno> 100
puis j'ai créé un trigger pour faire l'insertion sur la vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 create view v_emp as select * from employer union all select * from emp2;
soit avec new ou old le résultat d'insertion est la même chose lorsque j'écris ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
empno = 500 , normalement l'insertion se fait sur la table emp 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part insert into v_emp values(500,'500','500','22-2-2009',500,500);
mais il a fait sur la table employer malgré la condition est clair : if :old.empno>100
Partager