CREATE EVENT TRIGGER — définir un nouveau trigger sur événement
CREATE EVENT TRIGGERnomONevenement[ WHENvariable_filtreIN (valeur_filtre[, ... ]) [ AND ... ] ] EXECUTE { FUNCTION | PROCEDURE }nom_fonction()
   CREATE EVENT TRIGGER crée un nouveau trigger sur
   événement. À chaque fois que l'événement désigné intervient et que la
   condition WHEN associée au trigger est satisfaite,
   la fonction du trigger est exécutée. Pour une introduction générale aux
   triggers sur événement, voir Chapitre 38. L'utilisateur
   qui crée un trigger sur événement devient son propriétaire.
  
nomLe nom à donner au nouveau trigger. Ce nom doit être unique sur la base de données.
evenementLe nom de l'événement qui déclenche un appel à la fonction donnée. Voir Section 38.1 pour plus d'informations sur les noms d'événements.
variable_filtre
      Le nom d'une variable utilisée pour filtrer les événements. Ceci rend
      possible de restreindre l'exécution du trigger sur un sous-ensemble des
      cas dans lesquels ceci est supporté. Actuellement la seule valeur
      autorisée pour variable_filtre
      est TAG.
     
valeur_filtre
      Une liste de valeurs pour la variable_filtre associée, pour laquelle le
      trigger sera déclenché. Pour TAG, cela signifie une
      liste de balises de commande (par exemple 'DROP
       FUNCTION').
     
nom_fonction
      Une fonction fournie par un utilisateur, déclarée ne prendre aucun
      argument et renvoyant le type de données event_trigger.
     
      Dans la syntaxe de CREATE EVENT TRIGGER, les mots
      clés FUNCTION et PROCEDURE sont
      équivalents mais la fonction référencée doit dans tous les cas être une
      fonction, et non pas une procédure. L'utilisation du mot-clé
      PROCEDURE est ici historique et dépréciée.
     
Seuls les superutilisateurs peuvent créer des triggers sur événement.
   Les triggers sur événement sont désactivées en mode simple utilisateur (voir
   postgres) ainsi que quand
   event_triggers est configuré à
   false.
   Si un trigger sur événement erroné désactive
   la base de données à tel point que vous ne pouvez même pas supprimer le
   trigger, redémarrez le serveur avec event_triggers
   configuré à false pour désactiver temporairement les
   triggers sur événement, ou redémarrez le serveur en mode simple
   utilisateur, et vous pourrez enfin supprimer le trigger.
  
Empêche l'exécution de toute commande DDL :
CREATE OR REPLACE FUNCTION annule_toute_commande() RETURNS event_trigger LANGUAGE plpgsql AS $$ BEGIN RAISE EXCEPTION 'la commande % est désactivée', tg_tag; END; $$; CREATE EVENT TRIGGER annule_ddl ON ddl_command_start EXECUTE FUNCTION annule_toute_commande();
   Il n'existe pas d'instruction CREATE EVENT TRIGGER dans le
   standard SQL.