我想遍历数据库中的每个表,并打印它的行数。
我可以获取所有表名,但我不知道如何遍历它们,将SELECT COUNT(*)
分配给它的表。
-- Get all tablenames
SELECT relname
FROM pg_stat_user_tables
示例结果
table_name row_count
------------- -------------
users 321
questions 807
comments 3,145
tags 58
...
注意:
我知道你可以使用pg_stat_user_tables
获取每个表的行数,但我希望看到一个" hello world" Postgres循环SELECTS值。我无法在网上找到任何其他SO问题或示例,这是简化的。
答案 0 :(得分:1)
我相信你需要在PostgreSQL手册中为documented创建一个Pl / SQL过程。
在loop内写下如下内容:
EXECUTE 'SELECT count(*) FROM ' || tabname::regclass;