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
|
CREATE TABLE tb_1 (
pk_1 integer not null,
champ1 varchar(30),
constraint ct_pk_tb_1 primary key (pk_1));
CREATE TABLE tb_2 (
pk_2 integer not null,
champ2 varchar(30),
constraint ct_pk_tb_2 primary key (pk_2));
CREATE TABLE tb_associative (
pk_fk_tb1 integer not null,
pk_fk_tb2 integer not null,
constraint ct_pk_tb_ass primary key (pk_fk_tb1,pk_fk_tb2),
constraint ct_fk_tb1 foreign key (pk_fk_tb1) references tb_1(pk_1),
constraint ct_fk_tb2 foreign key (pk_fk_tb2) references tb_2(pk_2));
CREATE VIEW vu_selection AS
SELECT pk_1,champ1,pk_2,champ2
FROM tb_1,tb_2,tb_associative
WHERE pk_1=pk_fk_tb1 AND pk_2=pk_fk_tb2;
SET TERM ^;
CREATE TRIGGER tr_tb_ass FOR vu_selection
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
INSERT INTO tb_1 VALUES (new.pk_1,new.champ1);
INSERT INTO tb_2 VALUES (new.pk_2,new.champ2);
INSERT INTO tb_associative VALUES (new.pk_1,new.pk_2);
END
^
COMMIT WORK; |
Partager