PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment supprimer chaque table d'un schéma spécifique dans postgres ?

Vous pouvez utiliser un anonymous code block pour ça.

Attention :Nous avons affaire à DROP TABLE déclarations, et elles sont vraiment méchantes si vous faites une erreur ;) La CASCADE supprime également les objets dépendants. Utilisez-le avec précaution !

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

Si vous souhaitez tout supprimer de votre schéma, y ​​compris les wrappers, les séquences, etc., envisagez de supprimer le schéma lui-même et de le recréer :

DROP SCHEMA mySchema CASCADE;
CREATE SCHEMA mySchema;