sql - 列出 postgresql 数据库中所有表的表大小
问题描述
我可以通过以下方式获取 postgresql 数据库中所有表中的列数
SELECT TABLE_SCHEMA, TABLE_NAME, COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME;
我可以通过以下方式获取数据库中特定表中的行数
SELECT COUNT(*) FROM mytable
如何在一次查询中获取数据库中所有表的列数和行数?
解决方案
正如@a_horse_with_no_name 建议的那样,使用 a 组合您的查询CTE
并将其与 one 连接posted on this answer
,例如
WITH j AS (
SELECT table_schema, table_name, count(*) AS count_columns
FROM information_schema.columns
GROUP BY table_schema, table_name
)
SELECT
nspname AS schemaname,relname,reltuples,count_columns
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
JOIN j ON j.table_name = relname AND j.table_schema = nspname
WHERE
nspname NOT IN ('pg_catalog', 'information_schema') AND
relkind='r'
ORDER BY reltuples DESC;
推荐阅读
- spring - 配置 Spring Boot 以使用自定义访问令牌转换器
- android - 请求与我的库相同的导入的 Android 项目
- vee-validate - 如何在不同名称的 vee-validate 中显示服务器错误?
- ruby-on-rails - 如何根据条件验证密码?
- javascript - 如何访问从 MVC 视图中的 ajax 调用调用的控制器返回的数据
- android - Jetpack Compose 中的高度垫片 (HeightSpacer)
- angular - 在 Ionic 4 中使用查询参数
- python - (Maya Python) 如何通过 GUI 函数运行单选选项按钮?
- python - 如何计算 python pandas 数据帧的第一条和最后一条记录之间的时间差异
- azure - Azure 管道“WinRMCustomScriptExtension”基础连接在非公共 VM 中关闭