项目所有用的数据库从SQLServer 换成PostgreSQL,项目中很多sql 是针对SQLServer 写的,所以不得不从新写SQL,项目中有一个功能是要统计出数据库的情况,包括所有表的记录数。对数据库不太熟悉,找了半天,大致还是要从系统表pg_class上入手。
有关pg_class字段介绍:https://wizardforcel.gitbooks.io/postgresql-doc/content/714.html
查询出pg_class表中的reltuples就是表的记录数:
select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' order by rowCounts desc
这样查出来的有一个问题,就是会把系统表的数据也查出来,这显然不是我想要的。怎么去掉系统表。
可以查询Schema下的每张表的记录数
select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' and relnamespace = (select oid from pg_namespace where nspname='public') order by rowCounts desc;
本文介绍了从SQLServer迁移到PostgreSQL的过程中如何统计各表记录数的方法。通过查询pg_class表并排除系统表,实现了对公共模式下各表记录数的有效统计。
2423

被折叠的 条评论
为什么被折叠?



