Vous n'êtes pas identifié(e).

#2 Général » event trigger ddl_command_end ne rapporte pas les ordres DROP » 13/12/2019 12:12:55

OF
Réponses : 3

Elo,
quelqu'un sait-il pourquoi cet "event trigger" ne rapporte t-il pas les ordres DROP alors qu'il serait censé le faire selon la documentation ?

au paragraphe 39.1 :
L'évènement ddl_command_start se déclenche juste avant l'exécution d'une commande CREATE, ALTER, DROP, ...
...
...
L'évènement ddl_command_end se déclenche juste après l'exécution de ces même ensembles de commandes...
...

et au paragraphe 39.2 Matrice de déclenchement des triggers sur événement...



CREATE OR REPLACE FUNCTION ddl_log_command_end()
 RETURNS event_trigger
 LANGUAGE plpgsql
 SECURITY DEFINER
AS $function$
DECLARE
    obj record;
BEGIN
    FOR obj IN
        SELECT *
        FROM pg_catalog.pg_event_trigger_ddl_commands()
    LOOP
        RAISE NOTICE '% objet : % %.%',
                     obj.command_tag,
                     obj.object_type,
                     obj.schema_name,
                     obj.object_identity;
    END LOOP;
END;
$function$;


CREATE EVENT TRIGGER ddl_log_command_end ON ddl_command_end   
   EXECUTE PROCEDURE ddl_log_command_end();                    
   
 
zof [7862]=# create table za (id int);
NOTICE:  CREATE TABLE objet : table zof.zof.za
CREATE TABLE

zof [7862]=# alter table za add lib char(30);
NOTICE:  ALTER TABLE objet : table zof.zof.za
ALTER TABLE

zof [7862]=# drop table za;
DROP TABLE

zof [7862]=#

Merci

Pied de page des forums

Propulsé par FluxBB