H2获取所有表的行数

时间:2013-02-04 09:40:46

标签: sql count h2

我想知道每个表的总行数。并且同时为所有表格。这可能与H2有关吗?

我在考虑一张桌子:

|table name | row size |

目前我正在使用当前版本1.3.170(2012-11-30)。

2 个答案:

答案 0 :(得分:3)

您需要使用用户定义的函数,例如:

drop alias count_rows;
create alias count_rows as 
'long countRows(Connection conn, String tableName) 
    throws SQLException {
ResultSet rs = conn.createStatement().
    executeQuery("select count(*) from " + tableName);
rs.next();
return rs.getLong(1); }';
select table_name, count_rows(table_name) count 
from INFORMATION_SCHEMA.TABLES 
where table_schema = 'PUBLIC';

此代码未考虑架构,仅适用于不带引号的表名。

答案 1 :(得分:0)

尝试SELECT table_name, row_count_estimate FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'PUBLIC'。它将为您提供“估计”,但结果可能会为您提供所需的信息。