do this via execute in a stored procedure - something like this (written on the 
flow - untested!)

returns setof text

declare
 my_record record;
 my counter as bigint;

begin

for my_record in 
   select tablename from pg_tables where
   schemaname = 'public' 
loop
   execute into counter
       'select count(*) from ' || my_record.tablename ;
   return next my_record.tablename || ': ' || counter::text;

end loop;
   return null;

end;


On Fri, August 3, 2007 7:35 am, Paul Lambert wrote:
> What's the best way to count how many rows are in each table via SQL? Or
> is it even possible?
> 
> I'm trying something like:
> 
> select tablename, count(*) from (select tablename from pg_tables where
> schemaname = 'public') as test group by tablename;
> 
> But obviously this just gives a count of 1 for each table in the public
> schema.
> 
> Can it be done or would I have to write a function?
> 
> --
> Paul Lambert
> Database Administrator
> AutoLedgers
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
>        subscribe-nomail command to [EMAIL PROTECTED] so that your
>        message can get through to the mailing list cleanly
> 


-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to