Bonjour,
Voir l'erreur que j'obtiens lorsque je veux supprimer un record dans une table (DELETE FROM TABLE1 WHERE ID = '5'):
ORA-04091: table SCH_WILL.TABLE4 is mutating, trigger/function may not see it
ORA-06512: at "SCH_WILL.AFTER_DEL_ENTITY", line 3
ORA-04088: error during execution of trigger 'SCH_WILL.AFTER_DEL_ENTITY'
Le code de ce trigger en erreur est simple :
DELETE FROM OTHERTABLE WHERE ID = :OLD.IDTABLE8;
OTHERTABLE est une table parent de TABLE4.
Il semble que la suppression dans TABLE1 (DELETE FROM TABLE1 WHERE ID = '5') déclenche le trigger de la table la plus enfant qui est TABLE4, c'est pourquoi cette table est dite en mutation peut-être ??
Voici le lien entre les tables (parent vers enfant) :
TABLE1<-TABLE2<-TABLE3<-TABLE4
et
OTHERTABLE<-TABLE4
Comment l'exécution a-t-il atteint TABLE4 alors que je fais une suppression sur TABLE1 et le record à supprimer n'a aucune correspondance à TABLE2 ni TABLE3 et bien evidemment TABLE4
Partager