获取数据库中所有table名:
SELECT tablename FROM pg_tables
WHERE tablename NOT LIKE 'pg%'
AND tablename NOT LIKE 'sql_%'
ORDER BY tablename;
获取数据库中所有table名及table的注解信息:
SELECT tablename,obj_description(relfilenode,'pg_class') FROM pg_tables a, pg_class b
WHERE
a.tablename = b.relname
and a.tablename NOT LIKE 'pg%'
AND a.tablename NOT LIKE 'sql_%'
ORDER BY a.tablename;
获取指定table的所有字段信息:
SELECT col_description(a.attrelid,a.attnum) as comment,format_type(a.atttypid,a.atttypmod) as type,a.attname as name, a.attnotnull as notnull
FROM pg_class as c,pg_attribute as a
where c.relname = 'tablename' and a.attrelid = c.oid and a.attnum>0
查询字段名、字段类型及字段长度和字段注释:
select a.attnum,a.attname,concat_ws('',t.typname,SUBSTRING(format_type(a.atttypid,a.atttypmod) from '\(.*\)')) as type,d.description from pg_class c, pg_attribute a , pg_type t, pg_description d
where c.relname = 'table_name' and a.attnum>0 and a.attrelid = c.oid and a.atttypid = t.oid and d.objoid=a.attrelid and d.objsubid=a.attnum