sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo eliminar cada tabla en un esquema específico en postgres?

Puede usar un anonymous code block por eso.

Atención :Estamos tratando con DROP TABLE declaraciones, y son realmente malas si comete un error;) El CASCADE La opción elimina también los objetos dependientes. ¡Úsalo con cuidado!

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

En caso de que desee eliminar todo en su esquema, incluidos los envoltorios, las secuencias, etc., considere eliminar el esquema en sí y volver a crearlo:

DROP SCHEMA mySchema CASCADE;
CREATE SCHEMA mySchema;