Comment effectuez-vous l'équivalent d'Oracle DESCRIBE TABLE
dans PostgreSQL (en utilisant la commande psql)?
postgresql
psql
table-structure
M. Muskrat
la source
la source
+
vraiment embrayage, car PostgresSQL 9 ne donne que la description détaillée des vues lorsque vous le faites\d+ table_name
, plutôt que la simple\d table_name
psql -E
est pratique pour obtenir le sql qui implémente\d+
et similaire (pour une utilisation en dehors de l'invite psql)En plus de la méthode PostgreSQL (\ d 'quelque chose' ou \ dt 'table' ou \ ds 'séquence' et ainsi de suite)
La manière standard SQL, comme indiqué ici :
Il est pris en charge par de nombreux moteurs de base de données.
la source
\d+
n'est pas le cas. Ceci est la meilleure réponse IMOSi vous souhaitez l'obtenir à partir d'une requête au lieu de psql, vous pouvez interroger le schéma de catalogue. Voici une requête complexe qui fait cela:
C'est assez complexe mais il vous montre la puissance et la flexibilité du catalogue système de PostgreSQL et devrait vous aider à maîtriser pg_catalog ;-). Assurez-vous de modifier les% s dans la requête. Le premier est Schéma et le second est le nom de la table.
la source
format_type()
inclura tous les modificateurs attachés au type, par exemplenumeric(6,2)
; alors queinformation_schema.columns
ne rapportera que le type de base denumeric
.Vous pouvez le faire avec une commande psql slash:
Cela fonctionne également pour d'autres objets:
Source: faqs.org
la source
L'équivalent psql de
DESCRIBE TABLE
est\d table
.Voir la partie psql du manuel PostgreSQL pour plus de détails.
la source
\c databasename
plutôt queuse databasename
(pour ceux qui viennent de MySQL comme moi :-). Sans d'\c databasename
abord,\d tablename
produit unNo relations found.
message et rien de plus.Cela devrait être la solution:
la source
Vous pouvez faire un
\d *search pattern *
avec des astérisques pour trouver des tableaux qui correspondent au modèle de recherche qui vous intéresse.la source
\d *"<SubString>"*
. Autrement dit, les guillemets doubles doivent être à l' intérieur des astérisques. Cependant, si vous voulez juste la liste des tableaux, alors vous voulez utiliser\dt
En plus de la ligne de commande que
\d+ <table_name>
vous avez déjà trouvée, vous pouvez également utiliser le schéma d' information pour rechercher les données de colonne, en utilisant info_schema.columnsla source
FROM info_schema.columns
ne fonctionnait pas pour moi, je devais utiliserfrom information_schema.columns
, je ne sais pas si c'est une faute de frappe dans votre réponse ou un problème d'implémentation de mon côté.Utilisez l'instruction SQL suivante
Si vous remplacez tbl_name et col_name, il affiche le type de données de la colonne particulière que vous recherchez.
la source
Vous pouvez utiliser ceci:
la source
Cette variation de la requête (comme expliqué dans d'autres réponses) a fonctionné pour moi.
Il est décrit ici en détail: http://www.postgresqltutorial.com/postgresql-describe-table/
la source
Dans MySQL , DESCRIBE nom_table
Dans PostgreSQL , \ d nom_table
Ou, vous pouvez utiliser cette longue commande:
la source
Pour améliorer la requête SQL de l'autre réponse (ce qui est génial!), Voici une requête révisée. Il comprend également des noms de contrainte, des informations d'héritage et un type de données divisé en ses parties constituantes (type, longueur, précision, échelle). Il filtre également les colonnes qui ont été supprimées (qui existent toujours dans la base de données).
la source
Vous pouvez également vérifier en utilisant la requête ci-dessous
Expmple: Ma table a 2 colonnes de nom et pwd. Donner une capture d'écran ci-dessous.
* Utilisation de PG admin3
la source
La meilleure façon de décrire une table telle qu'une colonne, un type, des modificateurs de colonnes, etc.
la source
la source
la source
1) PostgreSQL DESCRIBE TABLE en utilisant psql
Dans l'outil de ligne de commande psql, \ d nom_table ou \ d + nom_table pour rechercher les informations sur les colonnes d'une table
2) PostgreSQL DESCRIBE TABLE utilisant information_schema
Instruction SELECT pour interroger les noms_colonnes, le type de données, la longueur maximale des caractères de la table des colonnes dans la base de données information_schema;
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH dans INFORMATION_SCHEMA.COLUMNS où table_name = 'tablename';
Pour plus d'informations https://www.postgresqltutorial.com/postgresql-describe-table/
la source
/ dt est la commande qui vous répertorie toutes les tables présentes dans une base de données. en utilisant la
commande / d et / d + nous pouvons obtenir les détails d'une table. La sysntax sera comme
* / d nom_table (ou) \ d + nom_table
la source
J'ai travaillé sur le script suivant pour obtenir le schéma de table.
la source
||
semble être quelque chose comme un opérateur de concaténation (reliant des chaînes)