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

Comment récupérer le commentaire d'une base PostgreSQL ?

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 variable ECHO_HIDDEN à on .