人大金仓,查询表结构和字段定义sql
SELECT x.relname AS 表英文名, bn.table_comment AS 表中文名, x.attnum, x.字段名称, x.字段类型, x.字段长度, x.字段说明 FROM ( SELECT c.relname, a.attnum, a.attname AS 字段名称, CASE WHEN t.typname = 'int4' THEN 'int' ELSE t.typname END AS 字段类型, CASE WHEN a.atttypmod > 0 THEN a.atttypmod - 4 ELSE NULL END AS 字段长度, b.description AS 字段说明 FROM pg_class c JOIN pg_attribute a ON a.attrelid = c.oid JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_description b ON a.attrelid = b.objoid AND a.attnum = b.objsubid WHERE c.relkind = 'r' AND c.relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public') AND a.attnum > 0 ) AS x LEFT JOIN ( SELECT c.relname AS table_name, d.description AS table_comment FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace LEFT JOIN pg_description d ON d.objoid = c.oid AND d.objsubid = 0 WHERE c.relkind = 'r' AND n.nspname = 'public' ) bn ON x.relname = bn.table_name ORDER BY x.relname, x.attnum;