做一个Postgres for循环,从每个表中选择SELECT数据

时间:2015-02-24 19:34:53

标签: sql postgresql postgresql-9.3

我想遍历数据库中的每个表,并打印它的行数。

我可以获取所有表名,但我不知道如何遍历它们,将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问题或示例,这是简化的。

1 个答案:

答案 0 :(得分:1)

我相信你需要在PostgreSQL手册中为documented创建一个Pl / SQL过程。

loop内写下如下内容:

EXECUTE 'SELECT count(*) FROM ' || tabname::regclass;