I need to loop through all the table in a database in postgresql. is there a similar stored procedure like mssql sp_msforeachtable for postgresql?
2 Answers
I usually use this query against information_schema.tables:
SELECT table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
AND table_schema = 'public'
ORDER BY table_name
You might want to adjust the table_schema to suit your needs though. This query should (AFAIK) work in any database that follows the standard.
Comments
Look in the information schema: information_schema.tables.
2 Comments
technomage
How do I loop through all the tables then process the table, if I lookup in the information_schema.tables I still need to use a script to loop the returned results and execute / process each table. In ms sql you can just do something like this in the command line (sqlcmd) : sp_msforeachtable 'delete from ?' that command will delete columns from all the tables in a database
Sean
@technomage, you need to learn how to use UNIX.
psql -At -c 'SELECT table_name FROM information_schema.tables' | xargs -n 1 ....