Folosesc postgresql și trebuie să renunț la toate tabelele care sunt prezente în schemă. Cum pot șterge din promptul de comandă.
Răspuns
Doriți să utilizați CASCADE opțiunea DROP SCHEMA. Din documentația :
CASCADE– Aruncați automat obiecte (tabele, funcții etc.) care sunt conținute în schemă, și, la rândul său, toate obiectele care depind de acele obiecte
ATENȚIE – accent mai presus de al meu.
Evident, va trebui să recreați schema după aceea.
Pentru a plasa toate tabelele în schema curentă, puteți utiliza acest script:
DO $$ DECLARE tabname RECORD; BEGIN FOR tabname IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP EXECUTE "DROP TABLE IF EXISTS " || quote_ident(tabname.tablename) || " CASCADE"; END LOOP; END $$;
Schimbați WHERE schemaname = current_schema() dacă doriți să plasați toate tabelele într-o schemă diferită.
Comentarii
Răspuns
yourdb=# DROP SCHEMA *schema_name* CASCADE;
(funcționează, doar testat cu Postgresql 9.6.3, s-ar putea să nu funcționeze cu versiunile anterioare)
Răspuns
@Techno Savvy
Drop tabele utilizând sintaxa postgres:
select "-- drop table " || tablename || " cascade;" from pg_tables where tablename not like "pg%" and tablename not like "sql%";
Copiați textul rezultat într-un script sql sau terminal psql. Rețineți că comenzile sunt comentate.
Comentarii
- Întrebarea a fost despre eliminarea tabelelor într-o anumită schemă, cred.
Răspuns
Dacă doriți doar un mod foarte simplu de a face acest lucru .. Iată un script pe care l-am folosit în trecut
select "drop table "||table_name||" cascade constraints;" from user_tables;
Aceasta va imprima o serie de comenzi drop pentru toate tabelele din schemă. Spulează rezultatul acestei interogări și execută-l.
La fel, dacă vrei să ștergi mai mult decât tabele, poți edita următoarele pentru a se potrivi nevoilor tale
select "drop "||object_type||" "|| object_name || ";" from user_objects where object_type in ("VIEW","PACKAGE","SEQUENCE", "PROCEDURE", "FUNCTION", "INDEX")
Sursă: https://forums.oracle.com/forums/thread.jspa?threadID=614090
Comentarii
- Întrebarea este Postgres, nu Oracle.
LINE 2? Ce ' este pe linia 1?