Salut,

J'aimerais de l'aide pour créer un trigger dans une pour qu'un enregistrement soit créé dans une table dont dépend la table dans laquelle j'insère et affecter le nouvel Id de la table parente comme Id de la table dans laquelle j'insère.

En gros, j'ai une table A qui n'a qu'un champ ID

Trois table en A1, A2, A3 dont la clef primaire est une clef étrangère vers A

Le trigger qui ajoute l'élément dans la séquence de A est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
create or replace trigger 
	TRG_SEQ_T_SEC_ENTITY     
before insert on "T_SEC_ENTITY"    
for each row begin     
	if inserting then       
		if :NEW."ID" is null then          
			select SEQ_T_SEC_ENTITY.nextval into :NEW."ID" from dual;       
		end if;    
	end if; 
end;
A1, A2 et A3 sont respectivement
T_SEQ_USER
T_SEQ_ROLE
T_SEQ_SALESTEAM

J'aimerais arriver à un truc du style

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
create or replace trigger 
	TRG_SEQ_T_SEQ_USER     
before insert on "T_SEQ_USER"    
for each row begin     
	if inserting then       
                -- DISABLE PARENT INSERT TRIGGER
                -- NSN <= CREATE NEW SEQUENCE NUMBER 
                -- INSERT NEW ROW IN SEQ_T_SEC_ENTITY (NSN)
                -- INSERT NEW ROW IN SEQ_T_SEC_ROLE (NSN)
                -- RE ENABLE PARENT INSERT TRIGGER
	end if; 
end;
Je sais pas si j'ai été très claire, il semble que ce soit un coup classique mais je n'ai pas bien compris l'exemple suivant de la page : http://docs.oracle.com/cd/A87860_01/...9/adg13trg.htm

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
CREATE OR REPLACE TRIGGER Dept_emplist_tr
   INSTEAD OF INSERT ON NESTED TABLE Emplist OF Dept_view
   REFERENCING NEW AS Employee
      PARENT AS Department
   FOR EACH ROW
BEGIN
-- The insert on the nested table is translated to an insert on the base table:
   INSERT INTO Emp_tab VALUES (
      :Employee.Empno, :Employee.Empname,:Employee.Salary, :Department.Deptno);
END;
Quelqu'un pourrait-il m'aider ?

Mici