From: | H <agents(at)meddatainc(dot)com> |
---|---|
To: | PostgreSQL Users Mailing List <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Dropping all tables in a database |
Date: | 2023-08-07 01:17:40 |
Message-ID: | ca828fc5-4ab6-f365-cb69-8076dee6e808@meddatainc.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I am running PostgreSQL 13.11 and tried to drop all tables in a database without dropping the database or schema. After logging in as the correct user, the following SQL statement does not work:
SELECT 'DROP TABLE IF EXISTS "' || tablename || '" CASCADE;' FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'xxx';
The above statement does not drop any tables, nor are there any error messages.
SELECT * FROM pg_tables;
The above shows all tables are still present in the database.
Dropping individual tables works fine but since I need to drop all tables in the database in a develop environment, this is not workable.
I had to resort to the following:
-- turn off headers:
\t
SELECT 'DROP TABLE IF EXISTS "' || tablename || '" CASCADE;' FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'livraddarpaket';
\g out.tmp
\i out.tmp
The SQL statements above run fine.
Is there some setting I have to change in the database to have the first SQL statement to work or have I run into a possible bug?
From | Date | Subject | |
---|---|---|---|
Next Message | Christophe Pettus | 2023-08-07 01:24:50 | Re: Dropping all tables in a database |
Previous Message | Jeffrey Walton | 2023-08-07 00:47:23 | Re: How to solve the warning? |