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
Code : Sélectionner tout - Visualiser dans une fenêtre à part \d nom de 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
Code : Sélectionner tout - Visualiser dans une fenêtre à part \d nom de table
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.
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 et R
Mes tutoriels et la FAQ MySQL
----------------------------------------------------
Pensez aux balises code et au tag![]()
Une réponse vous a plu ? N'hésitez pas à y mettre un![]()
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
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
Il suffit de mettre le nom de table et cela sort ce résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Encore merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 |
Loïc
Partager