PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como excluir todas as tabelas em um esquema específico no postgres?


Você pode usar um anonymous code block por isso.

Atenção :Estamos lidando com DROP TABLE declarações, e elas são realmente más se você cometer um erro;) O CASCADE opção também descarta os objetos dependentes. Use-o com 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;
$$;

Caso você queira descartar tudo em seu esquema, incluindo wrappers, sequências, etc., considere descartar o próprio esquema e criá-lo novamente:
DROP SCHEMA mySchema CASCADE;
CREATE SCHEMA mySchema;