2013-02-04 25 views
4

我想知道每個表的總行數。對於所有表格一次。 H2有可能嗎?H2獲取所有表的行數

我想一個表:

 
|table name | row size | 

目前我使用的是當前版本1.3.170(2012-11-30)。

+0

你想要統計總行數? – Arpit

+0

在H2中不確定,但在Oracle DB中,可以使用'SELECT table_name,num_rows FROM user_tables'。檢查這裏是否也有相同的功能。 – Orangecrush

+0

@Arpit是每個表的總數。 – keiki

回答

2

您將需要使用用戶定義的函數,例如:

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'; 

此代碼不考慮架構,以及僅適用於不帶引號的表名。

+0

工程就像一個魅力。我首先遇到了Java版本問題,不知何故,我混淆了Java 6和Java 7.然後,我從控制檯啓動它,而不是雙擊jar文件。 – keiki