#1 Tue 27 December 2016 15:39
- Emy.C
- Participant occasionnel
- Date d'inscription: 9 Oct 2014
- Messages: 21
[Potsgres]erreur sur trigger d'évènement
Bonjour,
je cherche à créer un trigger d'évènement pour récupérer des informations sur une base de données dans laquelle interviennent plusieurs personnes.
Le but est d'alimenter une table qui pour chaque création ou surpression de tables stockerait le nom du rôle courant, la date de l'action ainsi que l'objet sur lequel porterait l'action.
Je suis en train d'effctuer des tests en local.
J'ai créer un table dans laquelle je veux voir enregistrer mes données :
Code:
create table db_management.tableref (user_name varchar, date_action date, table_name name, action_type text, object_type text , objid oid) ;
puis j'ai crée mon trigger :
Code:
create or replace function report_user () returns event_trigger as $$ declare r record ; begin for r in select * from pg_event_trigger_ddl_commands () loop insert into db_management.tableref (user_name, date_action, table_name, action_type, object_type, objid) select current_user, current_date, pgc.relname, current_query(), r.object_type, r.objid from pg_clas as pgc where pgc.oid = r.oid ; end loop ; end; $$ language plpgsql ; create event trigger report_user_action on ddl_command_end execute procedure report_user () ;
je reçoit l'erreur suivante :
Code:
ERREUR: la fonction pg_event_trigger_ddl_commands() n'existe pas État SQL :42883 Astuce : Aucune fonction ne correspond au nom donné et aux types d'arguments. Vous devez ajouter des conversions explicites de type.
Dois je comprendre qu'il faut ajouter une extension s spécifiques pour créer des triggers d’événements ou mon code révèle-t-il que je n'ai pas compris la mécanique des instructions utilisées?
Merci d'avance.
Emy.C.
Hors ligne
#2 Tue 27 December 2016 20:24
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [Potsgres]erreur sur trigger d'évènement
Salut,
quelle version de postgresql utilisez vous ?
Il me semble que pg_event_trigger_ddl_commands n'est disponible
qu'a partir de la version 9.5.
Hors ligne
#3 Wed 28 December 2016 18:11
- Emy.C
- Participant occasionnel
- Date d'inscription: 9 Oct 2014
- Messages: 21
Re: [Potsgres]erreur sur trigger d'évènement
Je suis sur la version 9.3. Effectivement après relecture de la documentation de la version 9.3, je ne trouve pas mention de cette option.
Je vais essayer autrement.
Merci beaucoup.
Emy C.
Hors ligne
#4 Thu 29 December 2016 18:05
Re: [Potsgres]erreur sur trigger d'évènement
Les triggers sur évènement sont bien disponibles sur la 9.3. Ils ont d'ailleurs été introduits dans la 9.3.
Vous pouvez essayer l'exemple de la doc pour vérifier.
Par contre la fonction pg_event_trigger_ddl_commands() n'est apparue qu'en 9.5
Dernière modification par jmarsac (Thu 29 December 2016 18:16)
Jean-Marie
Azimut
Hors ligne