> 文档中心 > 获取pgsql数据库对应的 表名,字段名,类型,长度,序列名语句

获取pgsql数据库对应的 表名,字段名,类型,长度,序列名语句

获取数据库对应的 表名,字段名,类型,长度序列语句

select a.* , b.sequence_name from
(select 
col.table_name, 
col.column_name, 
col.udt_name as col_arry_type, 
col.character_maximum_length
from pg_catalog.pg_tables A, 
information_schema.columns col 
left join pg_catalog.pg_namespace pns on col.table_schema = pns.nspname 
left join pg_catalog.pg_class pc on col.table_name=pc.relname and pc.relnamespace=pns.oid 
left join pg_attribute pa on (col.column_name=pa.attname) and pa.attrelid=pc.oid 
left join pg_catalog.pg_description dsc on pc.oid=dsc.objoid and col.ordinal_position= dsc.objsubid 
where A.schemaname = col.table_schema  
AND A.tablename = col.TABLE_NAME    AND col.table_schema = 'public' ) a left join
(select ts.nspname as object_schema,
        tbl.relname as table_name, 
       col.attname as column_name,
       s.relname   as sequence_name
from pg_class s
  join pg_namespace sn on sn.oid = s.relnamespace 
  join pg_depend d on d.refobjid = s.oid and d.refclassid='pg_class'::regclass 
  join pg_attrdef ad on ad.oid = d.objid and d.classid = 'pg_attrdef'::regclass
  join pg_attribute col on col.attrelid = ad.adrelid and col.attnum = ad.adnum
  join pg_class tbl on tbl.oid = ad.adrelid 
  join pg_namespace ts on ts.oid = tbl.relnamespace 
where s.relkind = 'S') b on (a.table_name = b.table_name) and a.column_name = b.column_name 
order by a.table_name desc