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

Hvordan sletter man hver tabel i et bestemt skema i postgres?

Du kan bruge en anonymous code block for det.

Opmærksomhed :Vi har at gøre med DROP TABLE udsagn, og de er virkelig slemme, hvis du laver en fejl;) CASCADE option fjerner også de afhængige objekter. Brug det med omtanke!

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

Hvis du vil droppe alt i dit skema, inklusive wrappers, sekvenser osv., kan du overveje at droppe selve skemaet og oprette det igen:

DROP SCHEMA mySchema CASCADE;
CREATE SCHEMA mySchema;


  1. Sådan returneres poster i korrekt rækkefølge i PostgreSQL

  2. Hvornår skal man bruge enkelte anførselstegn, dobbelte anførselstegn og backticks i MySQL

  3. Udfylder modalt indhold ved hjælp af PHP og AJAX?

  4. (Mit)SQL JOIN - få hold med nøjagtigt specificerede medlemmer