PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie lösche ich jede Tabelle in einem bestimmten Schema in Postgres?

Sie können einen anonymous code block verwenden dafür.

Achtung :Wir haben es mit DROP TABLE zu tun Aussagen, und sie sind wirklich gemein, wenn Sie einen Fehler machen;) Die CASCADE Option löscht auch die abhängigen Objekte. Verwenden Sie es mit Vorsicht!

DO $$
DECLARE
  row record;
BEGIN
    FOR row IN SELECT * FROM pg_tables WHERE schemaname = 'mySchema' 
    LOOP
      EXECUTE 'DROP TABLE mySchema.' || quote_ident(row.tablename) || ' CASCADE';
    END LOOP;
END;
$$;

Falls Sie alles in Ihrem Schema löschen möchten, einschließlich Wrapper, Sequenzen usw., ziehen Sie in Betracht, das Schema selbst zu löschen und neu zu erstellen:

DROP SCHEMA mySchema CASCADE;
CREATE SCHEMA mySchema;