Bonjour,
j'aurais besoin de l'aide pour un trigger sur postgreSQL :
j'ai des tables : tarif, inscription, règlement
Mon id_tarif 2 = gratuit
Créer un trigger qui, lorsque le type de tarif d’une inscription passe à gratuit, supprime les lignes
correspondantes dans la table REGLEMENT.

j'ai commencé par creer une fonction mais j'ai une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
CREATE OR REPLACE FUNCTION gratuit()
  RETURNS TRIGGER AS $delete$
 
BEGIN
         IF new.id_tarif == 2 then
	DELETE from reglement(id_auditeur, annee, num_ordre, montant) from reglement
 
 RETURN NEW;
END IF;
END;
$delete$ LANGUAGE 'plpgsql';
mon erreur est le suivant :
ERROR: ERREUR: erreur de syntaxe sur ou près de « ( »
LINE 6: DELETE from reglement(id_auditeur, annee, num_ordre, mont...


Une fois crée la fonction j'avais pensé créer ce Trigger :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CREATE TRIGGER $delete$
  BEFORE UPDATE
  ON inscription
  FOR EACH ROW EXECUTE PROCEDURE gratuit();
merci pour votre aide et bonne journée