PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come eliminare ogni tabella in uno schema specifico in postgres?

Puoi utilizzare un anonymous code block per quello.

Attenzione :Abbiamo a che fare con DROP TABLE affermazioni, e sono davvero cattive se commetti un errore;) Il CASCADE opzione elimina anche gli oggetti dipendenti. Usalo con cura!

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;
$$;

Nel caso in cui desideri eliminare tutto nel tuo schema, inclusi wrapper, sequenze, ecc., considera di eliminare lo schema stesso e di crearlo di nuovo:

DROP SCHEMA mySchema CASCADE;
CREATE SCHEMA mySchema;