PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Interroger les détails du schéma d'une table dans PostgreSQL ?

Il y a un beaucoup plus simple moyen dans PostgreSQL pour obtenir le type d'une colonne.

SELECT pg_typeof(col)::text FROM tbl LIMIT 1

Le tableau doit contenir au moins une ligne, bien sûr. Et vous n'obtenez que le type de base sans modificateurs de type (le cas échéant). Utilisez l'alternative ci-dessous si vous en avez également besoin.
Vous pouvez également utiliser la fonction pour les constantes. Le manuel sur pg_typeof() .

Pour une table vide (ou toute table), vous pouvez utiliser la requête du catalogue système pg_attribute pour obtenir la liste complète des colonnes et leur type respectif dans l'ordre :

SELECT attnum, attname AS column, format_type(atttypid, atttypmod) AS type
FROM   pg_attribute
WHERE  attrelid = 'myschema.mytbl'::regclass   -- optionally schema-qualified
AND    NOT attisdropped
AND    attnum > 0
ORDER  BY attnum;

Le manuel sur format_type() et sur les types d'identifiant d'objet comme regclass .