其他分享
首页 > 其他分享> > 查询所有表名及表备注

查询所有表名及表备注

作者:互联网

with tmp_tab as (
    select pc.oid as ooid,pn.nspname,pc.*
      from pg_class pc
           left outer join pg_namespace pn
                        on pc.relnamespace = pn.oid
      where 1=1
       and pc.relkind in ('r')
       and pn.nspname not in ('pg_catalog','information_schema') -- select pn.oid, pn.* from pg_namespace pn where 1=1
       and pn.nspname not like 'pg_toast%'
       and pc.oid not in (
          select inhrelid
            from pg_inherits
       )
       and pc.relname not like '%peiyb%'
    order by pc.relname
),tmp_desc as (
   select pd.*
     from pg_description pd
    where 1=1
      and pd.objsubid = 0 --objsubid 对于一个表列上的一个注释,这里是列号(objoid和classoid指表自己)。对全部其余对象类型,此列为0。
      --and pd.objoid=168605
)
select t0.*
  from (
		select tab.nspname,
		       tab.relname,
		       de.description,
		       'comment on table '||tab.nspname||'.'||tab.relname||' is '''||de.description||''';' as table_description
		  from tmp_tab tab
		       left outer join tmp_desc de
		                    on tab.ooid = de.objoid 
		 where 1=1    
		) t0
 where 1=1
   --and t0.description is not null
order by t0.nspname,t0.relname;

标签:nspname,pc,及表,pg,tab,表名,pn,select,备注
来源: https://www.cnblogs.com/hlove/p/15706701.html