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 procédure 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 PROCEDURE perlsnitch();