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 08/06/2011, 16h42   #1
Membre régulier
 
Homme Loïc JUSTIN
Administrateur de base de données
Inscription : novembre 2004
Messages : 234
Détails du profil
Informations personnelles :
Nom : Homme Loïc JUSTIN
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2004
Messages : 234
Points : 91
Points : 91
Par défaut Connaitre les details d'une table

Bonjour

Petite question
J'aimerais savoir si il existe une vue système qui permettrait d'avoir le même résultat que la commande
D'avance merci pour votre réponse
__________________
Si tu tapes ta tête contre une cruche et que ça sonne creux,
n'en déduits pas que c'est la cruche qui est vide.
JUSTIN Loïc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 17h58   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
Quand psql est lancé avec l'option -E, il affiche automatiquement les requêtes formant le résultat de commandes comme \d, donc on peut s'en inspirer pour faire la même chose.

Egalement une autre option est d'utiliser les vues présentes dans le schéma information_schema, qui est fait justement pour ça.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 17h58   #3
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Bonjour,

La vue pg_attribute du catalogue postgres (qu'il faut joindre à la vue pg_class pour filtrer sur le nom de la table).
Ou alors la vue columns du catalogue ANSI (information_schema).

ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 08h27   #4
Membre régulier
 
Homme Loïc JUSTIN
Administrateur de base de données
Inscription : novembre 2004
Messages : 234
Détails du profil
Informations personnelles :
Nom : Homme Loïc JUSTIN
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2004
Messages : 234
Points : 91
Points : 91
Bonjour

Merci pour vos réponses.
Sinon, l'option -E c'est super . Je dormirais moins bête cette nuit.
Complément d'information du 100611
Pour ceux que cela intéresse.
A partir des scripts renvoyés par la commande -E
J'ai pu généré celle-ci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT a.attname,
  pg_catalog.format_type(a.atttypid, a.atttypmod),
  (SELECT substring(d.adsrc FOR 128) 
   FROM pg_catalog.pg_attrdef d
   WHERE d.adrelid = a.attrelid 
   AND d.adnum = a.attnum 
   AND a.atthasdef)
FROM pg_catalog.pg_attribute a
WHERE a.attrelid IN  (SELECT c.oid
  FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
      AND c.relname ~ '^$nom_de_table$') 
AND a.attnum > 0 
AND NOT a.attisdropped
ORDER BY a.attnum
Il suffit de mettre le nom de table et cela sort ce résultat
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 attname  |      format_type      | ?COLUMN?
----------+-----------------------+----------
 id_user  | smallint              |
 id_dom   | smallint              |
 login    | character varying(20) |
 password | character varying(32) |
 mail     | character varying(60) |
 nom      | character varying(40) |
 prenom   | character varying(40) |
 entite   | character varying(40) |
 droit    | smallint              |
 valide   | smallint              |
Encore merci pour votre aide

Loïc
__________________
Si tu tapes ta tête contre une cruche et que ça sonne creux,
n'en déduits pas que c'est la cruche qui est vide.
JUSTIN Loïc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h00.


 
 
 
 
Partenaires

Hébergement Web