Tout d'abord, votre requête pour les commentaires de table peut être simplifiée en utilisant une conversion vers le type d'identifiant d'objet approprié :
SELECT description
FROM pg_description
WHERE objoid = 'myschema.mytbl'::regclass;
La partie schéma est facultative. Si vous l'omettez, votre search_path
actuel décide de la visibilité de toute table nommée mytbl
.
Mieux encore , il existe des fonctions dédiées dans PostgreSQL pour simplifier et canoniser ces requêtes. Le manuel :
obj_description(
object_oid
,catalog_name
)
... obtenir un commentaire pour un objet de base de données
shobj_description(
object_oid
,catalog_name
)
... obtenir un commentaire pour un objet de base de données partagé
Description du tableau :
SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');
Description de la base de données :
SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM pg_catalog.pg_database d
WHERE datname = 'mydb';
Comment le savez-vous ?
Eh bien, la lecture de l'excellent manuel est instructive. :)
Mais il existe une route plus directe dans ce cas :la plupart des psql
Les méta-commandes sont implémentées avec du SQL brut. Démarrer une session avec psql -E
, pour voir la magie derrière les rideaux. Le manuel :
-E
--echo-hidden
Faites écho aux requêtes réelles générées par
\d
et d'autres commandes antislash. Vous pouvez l'utiliser pour étudier les opérations internes de psql. Ceci équivaut à définir la variableECHO_HIDDEN
àon
.