Documentation PostgreSQL 14.22 » Programmation serveur » PL/Perl -- Langage de procédures Perl » Triggers sur événements avec PL/Perl

Précédent | Niveau supérieur | Suivant
45.6. Déclencheurs PL/Perl | Sommaire | 45.8. PL/Perl sous le capot

## 45.7. Triggers sur événements avec PL/Perl

PL/Perl peut être utilisé pour écrire des fonctions trigger sur événement. Dans ce type de fonctions, la référence hachée `$_TD` contient des informations sur l'événement du trigger. `$_TD` est une variable globale, qui obtient une valeur locale séparée à chaque invocation du trigger. Les champs disponibles via `$_TD` sont :

`$_TD->{event}`

  Le nom de l'événement pour lequel le trigger a été déclenché.

`$_TD->{tag}`

  La balise de la commande pour laquelle le trigger a été déclenché.

Le code de retour de la fonction trigger est ignoré.

Voici un exemple de fonction trigger sur événement, illustrant certaines des informations ci-dessus :

    CREATE OR REPLACE FUNCTION perlsnitch() RETURNS event_trigger AS $$
      elog(NOTICE, "perlsnitch: " . $_TD->{event} . " " . $_TD->{tag} . " ");
    $$ LANGUAGE plperl;

    CREATE EVENT TRIGGER perl_a_snitch
        ON ddl_command_start
        EXECUTE FUNCTION perlsnitch();