Bonjour tout le monde!

En gros, j'ai la base suivante: 3 tables dont une référence les 2 autres (1 avec cascade delete et l'autre non)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
create table RANDR.RIJA_ENTITY (
	"ID" varchar2(38),--equivalent UNIQUEIDENTIFIER
	"DONNEE" varchar2(50),
	CONSTRAINT "PK_RIJA_ENTITY" PRIMARY KEY(ID) 
/
create table RANDR.RIJA_WIRES(
	"ID" varchar2(38)  ,
	"DONNEE" varchar2(50),
	CONSTRAINT "PK_RIJA_WIRES" PRIMARY KEY(ID) 
/
create table RANDR.RIJA_LNK_WIRES (
	"ID" varchar2(38) ,
	"IDWIRE" varchar2(38) NOT NULL,
	"IDEQUIPMENT" varchar2(38) NOT NULL,
	CONSTRAINT "PK_RIJA_LNK_WIRES" PRIMARY KEY(ID) 
/
ALTER TABLE RANDR.RIJA_LNK_WIRES  ADD 	CONSTRAINT FK_666
 FOREIGN KEY (IDWire)	REFERENCES RANDR.RIJA_WIRES(ID)
/
ALTER TABLE RANDR.RIJA_LNK_WIRES ADD 	CONSTRAINT FK_777
 FOREIGN KEY (IDEquipment)	REFERENCES RANDR.RIJA_ENTITY(ID) ON DELETE CASCADE
/
insert into RANDR.RIJA_Entity(ID,donnee) values('{E8D441F7-6ACB-4CF3-B537-DD074C960193}','Entity1')
/
insert into RANDR.RIJA_Entity(ID,donnee) values('{5404F834-3338-4D08-90CA-04BDA66809FE}','Entity2')
/
insert into RANDR.RIJA_Wires(ID,donnee) values('{4D67A994-E42B-4B3C-BD06-B26CB4A11086}','WireA')
/
insert into RANDR.RIJA_Wires(ID,donnee) values('{3ABF4812-62ED-40DC-8ECE-A591E17B72AE}','WireB')
/
insert into RANDR.RIJA_LNK_Wires(ID,IDWire,IDEquipment) values('{FFBF4812-62ED-40DC-8ECE-A591E17B72AE}','{4D67A994-E42B-4B3C-BD06-B26CB4A11086}','{E8D441F7-6ACB-4CF3-B537-DD074C960193}')
/
insert into RANDR.RIJA_LNK_Wires(ID,IDWire,IDEquipment) values('{00BF4812-62ED-40DC-8ECE-A591E17B72AE}','{3ABF4812-62ED-40DC-8ECE-A591E17B72AE}','{5404F834-3338-4D08-90CA-04BDA66809FE}')
/
CREATE  OR REPLACE TRIGGER RANDR.A_D_RIJA_LNK_Wires
AFTER DELETE ON RANDR.RIJA_LNK_Wires
for each row
Begin
	DELETE FROM RIJA_Wires WHERE ID = :old.IDWire ;
end;
Mais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
delete from RANDR.RIJA_Entity where donnee = 'Entity1'
1 row deleted.
 
delete from RANDR.RIJA_Wires where donnee = 'WireB'
*
ERROR at line 1:
ORA-02292: integrity constraint (RANDR.FK_666) violated - child record found
Je comprends que la DELETE n°2 a causé cette erreur car on supprime un field parent qui est référencé par un field fils
Mais je ne comprends pas la DELETE n°1 qui est à 100 % OK alors qu'il y a "delete from RANDR.RIJA_Wires where donnee = 'WireB'" exécuté par le trigger
J'avais eu peur qu'il y aura l'erreur mutating table mais il n'y en a pas!!