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-hiddenFaites écho aux requêtes réelles générées par
\det d'autres commandes antislash. Vous pouvez l'utiliser pour étudier les opérations internes de psql. Ceci équivaut à définir la variableECHO_HIDDENàon.