PostgreSQL : créer, supprimer un trigger

PostgreSQL : créer, supprimer un triggerC'est un des reproches qu'on peut faire à PostgreSQL : la gestion des triggers - ou déclencheurs - est beaucoup plus compliquée que dans Oracle.

Création d'un trigger

Le trigger, dans l'exemple ci-dessous, a pour objet de passer automatiquement le contenu du champ client_ville de la table crm.client en majuscules. La création d'un déclencheur se passe en deux temps. Vous devez tout d'abord créer une fonction.

CREATE OR REPLACE FUNCTION crm.client_func_before() RETURNS trigger AS $client_func_before$ BEGIN NEW.client_ville := UPPER(NEW.client_ville); RETURN NEW; END; $client_func_before$ LANGUAGE plpgsql;

Vous pouvez ensuite créer votre trigger.

CREATE TRIGGER client_trg_before BEFORE INSERT OR UPDATE ON crm.client FOR EACH ROW EXECUTE PROCEDURE crm.client_func_before();

La suppression du trigger

La suppression de la fonction associée au trigger entraîne, à l'aide de la clause CASCADE, la suppression du trigger.

DROP FUNCTION crm.client_func_before() CASCADE;

Mais vous pouvez aussi décider de la suppression du trigger sans pour autant détruire la fonction, notamment si elle est utilisée par d'autres triggers.

DROP TRIGGER IF EXISTS tiers_trg_before ON gestion.tiers CASCADE;

Dsfc Dsfc

PostgreSQL : créer, supprimer un trigger
0 votes, 0.00 avg. rating (0% score)
Tags : , , , , , , , , , , , , ,
Commentaires

Pas encore de commentaire.

Désolé, les commentaires sont clos pour le moment.