Bonjour,
J'ai une table (gestionnaire) qui est référencée dans deux autres tables, j'ai écris un trigger qui, lorsque je supprime une ligne de la table gestionnaire, je met à jour les deux autres table.
Problème : lorsque je fais un delete sur la table gestionnaire, j'ai cette erreur:
ORA-04091: la table GESTIONNAIRE est en mutation ; le déclencheur ou la fonction ne peut la voir
ORA-06512: à "T_DELETE_GEST", ligne 5
ORA-04088: erreur lors d'exécution du déclencheur 'T_DELETE_GEST'Le code du Trigger :table gestionnaire( id number, --primary key code varachar2 ) table utilisateurs( id number --some fields id_gestionaire foreign key references gestionnaire (id) ) table sku( id number --some fields id_gestionaire foreign key references gestionnaire (id) )
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 CREATE OR REPLACE TRIGGER t_delete_gest BEFORE DELETE ON gestionnaire FOR EACH ROW DECLARE id_gestAdmin NUMBER; BEGIN -- Select id gest for Admin SELECT id INTO id_gestAdmin FROM gestionnaire WHERE code = '*'; -- Update SKU's of gest to Admin's UPDATE sku SET id_gestionnaire = id_gestAdmin WHERE id_gestionnaire = :OLD.id; UPDATE utilisateurs SET id_gestionnaire = id_gestAdmin WHERE id_gestionnaire = :OLD.id; END;
Partager