Tenta isso aqui :

CREATE TABLE teste
(
       tabela varchar(500),
       total int8
);

CREATE OR REPLACE FUNCTION contagem() RETURNS text AS $BODY$
DECLARE
recTot RECORD;
sql TEXT;
BEGIN
FOR recTot IN SELECT relname,reltuples from pg_class tb INNER JOIN pg_namespace SCH ON TB.relnamespace = SCH.oid WHERE relname not like'pg%' and nspname='public' AND tb.relkind = 'r'::"char"
LOOP
EXECUTE 'ANALYZE '||recTot.relname;

sql:= 'INSERT INTO teste VALUES ('''||recTot.relname||''','||recTot.reltuples||')';
EXECUTE sql;
END LOOP;
RETURN 'Acabou!!';
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;

bd=# select contagem();
  contagem
----------
 Acabou!!
(1 row)

bd=# select * from teste;
          tabela           | tot
---------------------------+-----
cine_enquete              |   0
cine_enquete              |   0
cine_enquete_reposta      |   0
cine_enquete_alternativa  |   0
categoria_esportiva       |  10
noticia_foto              |  19
cine_genero               |   0
cine_sessao               |   0
modalidade                |   6
treino                    |   4
turma_aluno               |   0
aluno                     |   0
comunicado_tipo           |   0
comunicado_campo          |   0
estado                    |   0
comunicado_envio          |   0


É isso ai ...
Att:
Thiago Risso

_______________________________________________
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

Responder a