1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| SQL> drop table t2;
Table dropped.
SQL> drop table t1;
Table dropped.
SQL>
SQL> create table t1 (id_t1 number not null primary key, c varchar2(10), d_alim varchar2(10));
Table created.
SQL> create table t2 (id_t2 number not null primary key,
2 id_t1 number,
3 d_src varchar2(10),
4 CONSTRAINT id_fk FOREIGN KEY (id_t1) REFERENCES t1(id_t1));
Table created.
SQL>
SQL> insert into t1 (id_t1, c) values (1, 'test 1');
1 row created.
SQL> insert into t1 (id_t1, c) values (2, 'test 2');
1 row created.
SQL>
SQL> insert into t2 (id_t2, id_t1, d_src) values (1, 1, 'alim 1');
1 row created.
SQL>
SQL> create or replace trigger trig_t1
2 before update on t1
3 for each row
4 declare
5 begin
6 select d_src into :new.d_alim from t2 where id_t1 = :old.id_t1;
7 exception
8 when no_data_found then
9 NULL; --on ne fait rien simule l'existance de la clause where exists
10 end;
11 /
Trigger created.
SQL>
SQL> update t1 set c = 'maj '|| to_char(id_t1);
2 rows updated.
SQL>
SQL> select * from t1;
ID_T1 C D_ALIM
---------- ---------- ----------
1 maj 1 alim 1
2 maj 2
SQL> |
Partager