Em primeiro lugar, sua consulta de comentários de tabela pode ser simplificada usando uma conversão para o tipo de identificador de objeto apropriado :
SELECT description
FROM pg_description
WHERE objoid = 'myschema.mytbl'::regclass;
A parte do esquema é opcional. Se você omitir, seu
search_path
atual decide a visibilidade de qualquer tabela chamada mytbl
. Melhor ainda , existem funções dedicadas no PostgreSQL para simplificar e canonizar essas consultas. O manual:
obj_description(
object_oid
,catalog_name
)
... obter comentário para um objeto de banco de dados
shobj_description(
object_oid
,catalog_name
)
... obter comentário para um objeto de banco de dados compartilhado
Descrição para a mesa:
SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');
Descrição do banco de dados:
SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM pg_catalog.pg_database d
WHERE datname = 'mydb';
Como você descobriu isso?
Bem, ler o excelente manual é esclarecedor. :)
Mas há uma rota mais direta neste caso:a maioria dos
psql
meta comandos são implementados com SQL simples. Inicie uma sessão com psql -E
, para ver a magia por trás das cortinas. O manual:
-E
--echo-hidden
Ecoar as consultas reais geradas por\d
e outros comandos de barra invertida. Você pode usar isso para estudar as operações internas do psql. Isso equivale a definir a variávelECHO_HIDDEN
paraon
.