Sugestão: PL/pgSQL + DBLink!
\i /usr/share/postgresql/8.1/contrib/dblink.sql
create or replace function total_linhas_cluster() returns bigint as $$
declare
rdb record;
linhas bigint;
soma bigint := 0;
begin
for rdb in
select datname
from pg_database
where datallowconn and not datistemplate
loop
select into linhas tuplas
from dblink('port=' || current_setting('port') || ' dbname=' ||
rdb.datname, '
SELECT sum(reltuples)::bigint
FROM pg_namespace n, pg_class c
WHERE n.oid = c.relnamespace
AND c.relkind = ''r''
AND n.nspname not like ''pg\\_%''
AND n.nspname != ''information_schema''
') as (tuplas bigint);
soma := soma + coalesce(linhas, 0);
raise notice '%... %', rdb.datname, linhas;
end loop;
return soma;
end
$$ language plpgsql;
Veja o teste que eu fiz na minha máquina:
rodrigo=# select total_linhas_cluster();
NOTA: pool... <NULL>
NOTA: zahle3... 410557
NOTA: zahle... 529901
NOTA: postgres... <NULL>
NOTA: rodrigo... 1042
NOTA: cepnovo... 139314
NOTA: cidades... 453
NOTA: contab... <NULL>
NOTA: correios... 2228834
NOTA: deferred... 23
NOTA: depends... 0
NOTA: genie... 65
NOTA: icewall... 5
NOTA: orkut... 16
NOTA: sqlmag... 25
NOTA: sqlmag2... 96
NOTA: super15... 1843963
NOTA: test... 40
NOTA: ts2... 67
NOTA: unicenp... 0
total_linhas_cluster
----------------------
5154401
(1 registro)
--
Rodrigo Hjort
http://icewall.org/~hjort
2006/9/20, Ribamar Sousa <[EMAIL PROTECTED]>:
> Beleza Rodrigo!
>
> Solução bem elegante.
> Depois de conseguir ver todos do banco atual eu tentei de todos os bancos.
> Acabei conseguindo unindo ao PHP.
> Como eu faria isso somente com o catálogo?
>
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios