PostgreSQL查询表列注释?

时间:2017-04-13 22:02:02

标签: mysql postgresql database-migration

我已将MySQL数据库迁移到PostgreSQL&用Postgres等效替换查询

BroadcastReceiver

   

SHOW FULL COLUMNS FROM schema_name.table_name;

返回栏目及其属性,但是'评论'在PostgreSQL查询中不返回MySQL查询中返回的属性。

有没有办法查询与每个column_name关联的注释?

2 个答案:

答案 0 :(得分:4)

这个怎么样:

select col_description((table_schema||'.'||table_name)::regclass::oid, ordinal_position) as column_comment
, * from information_schema.columns 
WHERE table_schema = 'schema_name' 
and table_name = 'table_name';

答案 1 :(得分:0)

您知道这显示在\dt+下,您可以对psql对-E所做的事情进行反向工程

  

-E --echo-hidden回显\ d和其他反斜杠命令生成的实际查询。您可以使用它来研究psql的内部操作。这相当于将变量ECHO_HIDDEN设置为on。

psql -d test -E -c'\dt+ foo'
********* QUERY **********
SELECT n.nspname as "Schema",
  c.relname as "Name",
  CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as "Type",
  pg_catalog.pg_get_userbyid(c.relowner) as "Owner",
  pg_catalog.pg_size_pretty(pg_catalog.pg_table_size(c.oid)) as "Size",
  pg_catalog.obj_description(c.oid, 'pg_class') as "Description"
FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','s','')
      AND n.nspname !~ '^pg_toast'
  AND c.relname ~ '^(foo)$'
  AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;
**************************

您可以在此处看到psql显示的所有信息。正如他们所说,教导男人钓鱼......?

相关问题