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?