postgresql - 选择表中所有对象的注释和对象信息
问题描述
我有这个查询可以选择表对象的所有评论(+表本身的评论):
SELECT c.table_schema, c.table_name,pgd.description, pgd.objsubid
FROM pg_catalog.pg_statio_all_tables as st
inner join pg_catalog.pg_description pgd on (pgd.objoid=st.relid)
inner join information_schema.tables c on (c.table_schema=st.schemaname and c.table_name=st.relname);
但这仅显示对象的子标识。现在我希望能够知道这到底是什么对象(列、主键、外键……)以及名称是什么。
我怎样才能做到这一点?
解决方案
如果您加入information_schema.tables
,您将仅获得有关表、视图和外部表的信息。这些可以通过添加table_type
来自的列来消除歧义information_schema.tables
。
要获得有关各种对象的评论,您必须UNION ALL
查询每种对象类型。
例如,要获得对函数和过程的评论,您必须加入pg_proc
:
SELECT f.proname, d.description
FROM pg_description AS d
JOIN pg_proc AS f ON f.oid = d.objoid
WHERE d.classoid = 'pg_proc'::regclass;
推荐阅读
- java - Eclipse 中的“当前正在使用的工作区”
- javascript - JS:高阶函数和map、reduce和filter
- android - 我运行我的项目,但它给出了错误这是什么我不知道
- python-3.x - 如何使用 Python 3 解析 URL 片段中的参数
- typescript - 带有打字稿的 Passportjs
- c - 字符串标记似乎没有在我的 C 程序中存储或访问
- c# - 屏幕截图返回为黑色图像 xamarin.ios
- c# - 如何列出。删除
- laravel - 我们如何处理 vuejs 中的响应?
- javascript - 如何在这个组件中测试 filterBooks 功能?(反应 - 开玩笑 - 酶)