侧边栏壁纸
博主头像
Ivan Zhang

所谓更牛,就是换个罪受

  • 累计撰写 48 篇文章
  • 累计创建 54 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

通过 pg_catalog 获取 psql 数据库信息

Ivan Zhang
2022-02-21 / 1 评论 / 0 点赞 / 578 阅读 / 1,250 字
温馨提示:
本文最后更新于 ,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
有什么问题或观点欢迎评论留言,或者 交流。
如果觉得文章对您有所帮助,可以给博主打赏鼓励一下。

获取数据库表名信息

SELECT
	cl.relname AS table_name,
	ds.description AS column_comment 
FROM
	pg_namespace ns
	LEFT JOIN pg_class cl ON ns.oid = cl.relnamespace
	LEFT JOIN pg_inherits ih ON cl.oid = ih.inhrelid
	LEFT JOIN pg_description ds ON cl.oid = ds.objoid 
WHERE
	ns.nspname = 'root' 
	AND cl.relkind = 'r' 
	AND ih.inhrelid IS NULL
	AND ds.objsubid = 0
ORDER BY
	cl.relname;

获取数据表列名信息

  • 全属性
SELECT
	*
FROM
	pg_namespace ns
	LEFT JOIN pg_class cl ON ns.oid = cl.relnamespace
	LEFT JOIN pg_inherits ih ON cl.oid = ih.inhrelid
	LEFT JOIN pg_attribute ab ON cl.oid = ab.attrelid
	LEFT JOIN pg_description ds ON ab.attrelid = ds.objoid 
	AND ab.attnum = ds.objsubid 
WHERE
	ns.nspname = 'root' 
	AND cl.relkind = 'r' 
	AND ih.inhrelid IS NULL
	AND ab.attisdropped = FALSE
	AND ab.attnum > 0
	AND cl.relname = 'plan_dcc_detail'
ORDER BY
	cl.relname,
	ab.attnum;
  • 部分属性值
SELECT
	ns.nspname AS schema_name,
	cl.relname AS table_name,
	ab.attname AS column_name,
	ds.description AS column_comment 
FROM
	pg_namespace ns
	LEFT JOIN pg_class cl ON ns.oid = cl.relnamespace
	LEFT JOIN pg_inherits ih ON cl.oid = ih.inhrelid
	LEFT JOIN pg_attribute ab ON cl.oid = ab.attrelid
	LEFT JOIN pg_description ds ON ab.attrelid = ds.objoid 
	AND ab.attnum = ds.objsubid 
WHERE
	ns.nspname = 'root' 
	AND cl.relkind = 'r' 
	AND ih.inhrelid IS NULL
	AND ab.attisdropped = FALSE
	AND ab.attnum > 0
	AND cl.relname = 'plan_dcc_detail'
ORDER BY
	cl.relname,
	ab.attnum;

参考链接

0

评论区