Bonjour,

Voila j'essaye de créer un trigger qui se déclencherait avant un delete dans une de mes tables, mais celui-ci se compile avec des erreurs.

Voici tout d'abord les deux tables concernées :
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
 
CREATE TABLE Applications
(
	id number,
	name varchar(20),
	slaId number,
	networkId number,
	CONSTRAINT pk_applications primary key(id),
	CONSTRAINT fk_app_sla foreign key(slaId) references sla(id),
	CONSTRAINT fk_app_network foreign key(networkId) references networks(id)
);
 
CREATE TABLE Sla
(
	id number,
	name varchar(20),
	(autres champs ... )
);
Et voici mon trigger :
Il doit effacer la valeur du champ "slaId" dans la table "applications" sur les applications concernées lorsque le sla qui lui était attribué est effacé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
CREATE OR REPLACE TRIGGER TRG_REMOVE_slaId
	BEFORE DELETE ON Sla
	REFERENCING OLD AS old
	FOR EACH ROW
	BEGIN
		UPDATE Applications SET slaId='' WHERE slaId=:old.id;
	END
/
Mais il se compile avec une erreur et je ne vois pas pourquoi...

Voyez vous quelque chose qui cloche ?

Merci d'avance