Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2006, 11h30   #1
Membre à l'essai
 
Inscription : novembre 2004
Messages : 32
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 32
Points : 20
Points : 20
Par défaut Que fait la commande \d ?

Bonjour,
voilà je cherche à récupérer les définitions (le create table) de quelques tables dans une base postgresql.
Je sais que je peux le faire par la commande pg_dump mais j'aimerais savoir si c'est possible de reconstituer le create table par commandes SQL. J'ai trouvé pour cela qu'on peut utiliser pg_class, pg_attribute... mon soucis c'est que pg_type.typname me renvoie int4 (au lieu de integer) et varchar (au lieu de character varying). Je n'arrive également pas à récupérer la taille d'un attribut : mettons que j'ai créé un attribut de type character varying(128) en récupèrant pg_attribute.attlen j'obtiens -1 pour dire que c'est un attribut de taille variable.

En fait ce qu'il me faudrait c'est ce qu'on obtient en faisant \d ma_table, après avoir fait psql ma_base. Quelqu'un sait quelles requêtes sont faites par cette commande ?

Merci d'avance
MystEre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 11h45   #2
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
Un article tous frais qui répond a vos question, n'est ce pas merveilleux
__________________
Christophe Chauvet (KrysKool)
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2006, 13h30   #3
Membre à l'essai
 
Inscription : novembre 2004
Messages : 32
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 32
Points : 20
Points : 20
Malheureusement la partie qui m'intéresse est celle là
Code :
1
2
3
SELECT a.attname,        a.attnotnull,        t.typname   
FROM pg_class c, pg_attribute a, pg_type t  
WHERE c.relname = 'test2'    AND a.attnum > 0    AND a.attrelid = c.oid    AND a.atttypid = t.oid
et mon problème est toujours le même : ce qui est affiché par \d n'est pas la valeur t.typname.
MystEre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h29.


 
 
 
 
Partenaires

Hébergement Web