Skip to main content

Drop all tables in a Postgres schema

还没翻译译自英文(supabase.com)本页 5 段都还没译

This query drops all tables in a given schema. Replace my-schema-name with the name of your schema. In Supabase, the default schema is public.

Caution

This deletes all tables and their associated data. Ensure you have a recent backup before proceeding.

Run the following SQL using the SQL Editor in the Supabase Dashboard or with psql over a direct connection. To connect with psql, see Direct connection.

do $$ declare
    r record;
begin
    for r in (select tablename from pg_tables where schemaname = 'my-schema-name') loop
        execute 'drop table if exists ' || quote_ident(r.tablename) || ' cascade';
    end loop;
end $$;

This query works by listing out all the tables in the given schema and then executing a drop table for each (hence the for... loop).