2016-11-25 22 views
1

我想要得到pgadmin中'hgp17290_data'db內表的數量。 我一直在Postgres SQL折騰了,我可以得到一個數據庫的大小,像這樣:postgres以db爲單位的表格

select pg_database_size('hgp17290_data'); 

,但我不能讓這個數據庫表的數量,下面的例子,我不可能得到持續

SELECT 
    pg_database.datname, 
    pg_size_pretty(pg_database_size(pg_database.datname)) AS size 
    FROM pg_database; 

SELECT pg_size_pretty(pg_total_relation_size('DemoLayer1')); 

select count(*) 
from information_schema.tables 
where table_schema = 'hgp17290_data'; 

select * from pg_stat_user_tables ; 
select count(*) from 'GeoAppBuilderData' ; 
select * from pg_stat_all_tables ; 

SELECT count(*) FROM GeoAppBuilderData.tables WHERE table_schema NOT IN ('GeoAppBuilderData', 'pg_catalog'); 

select pg_database_count('hgp17290_data'); 

select count(1) from ('hgp17290_data'); 

select 'hgp17290_data' db, 'users' 'hgp17290_data', count[1] "rowscount" from hgp17290_data.users 



select table_schema, 
     table_name, 
     (xpath('/row/cnt/text()', xml_count))[1]::text::int as row_count 
from (
    select table_name, table_schema, 
     query_to_xml(format('select count(*) as cnt from %I.%I', table_schema, table_name), false, true, '') as xml_count 
    from information_schema.tables 
    where table_schema = 'hgp17290_data' --<< change here for the schema you want 

    SELECT COUNT(*) FROM ('hgp17290_data'); 

    SELECT 'hgp17290_data' AS table_name, COUNT(*) FROM table_1 
) 
+2

這是什麼問題?從'information_schema.tables'計數似乎是最簡單的方法。 –

+0

'select count(*)from pg_tables' –

回答

0

你已經嘗試此查詢:

select count(*) 
from information_schema.tables 
where table_schema = 'hgp17290_data'; 

但在我看來,你不必在這裏提供一個where子句與架構名稱等於你的數據庫名稱( hgp17290_data是您的數據庫名稱,而不是某個模式名稱)。試試這麼簡單:

select count(*) 
from information_schema.tables;