Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 19/11/2009 15:37:18
- gilou974
- Membre
Lister le nom de toutes les sequences d'une base
Bonjour à tous.
Après recherche je ne trouve pas s'il existe un moyen de récupérer via une fonction tous les noms des séquences de ma base de manière à pourvoir effectuer un reset des valeurs.
Quelqu'un aurait-il une méthode ?
Merci par avance
Hors ligne
#2 19/11/2009 16:20:22
- gilou974
- Membre
Re : Lister le nom de toutes les sequences d'une base
Desole si j'ai fait perdre du temps à quelqu'un en cherchant plus j'ai eu ma réponse merci à Guillaume (Gleu) qui avait déjà donné la solution en répondant à une autre question...
Solution donc :
Le catalogue système pg_class contient toutes les informations nécessaires pour faire cette opération. Il vous suffit d'exécuter une requête sur cette table en récupérant le nom de l'objet (colonne relname) après avoir fait un filtre sur le type (relkind, r pour table, i pour index, s pour séquence). N'oubliez pas de filtrer les objets systèmes (ie tous ceux dont le nom commence par pg_).
Donc, exécutez cette requête dans la fonction PL/pgsql, utilisez une boucle FOR pour récupérer ligne par ligne (donc table par table, index par index, séquence par séquence), et construisez une chaîne de requête pour exécuter le ALTER objet nom OWNER TO utilisateur.
Merci encore
Hors ligne
#3 19/11/2009 16:57:28
- gilou974
- Membre
Re : Lister le nom de toutes les sequences d'une base
Autres solution : pour les sequences on a : SELECT * FROM information_schema.sequences
Hors ligne
#4 19/11/2009 17:03:49
- daamien
- damien clochard
Re : Lister le nom de toutes les sequences d'une base
\ds
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
Pages : 1