SQL - PostgreSQL - aruncați fiecare tabel într-un fișier diferit - Stack Overflow

Trebuie să extrag fișiere SQL din mai multe tabele ale unei baze de date PostgreSQL. Iată cu ce am venit până acum:

Totuși, după cum vedeți, toate tabelele care încep cu prefixul thr sunt exportate într-un singur fișier unificat (db_dump.sql). Am aproape 90 de tabele în total din care să extrag SQL, deci este obligatoriu ca datele să fie stocate în fișiere separate.

Cum o pot face? Mulțumesc anticipat.

4 Răspunsuri 4

Dacă doriți să codificați cu greu lista tabelelor, dar doriți doar ca fiecare să fie într-un fișier diferit, puteți utiliza o buclă de script shell pentru a rula comanda pg_dump de mai multe ori, înlocuind numele tabelului de fiecare dată în jurul buclei:

EDITAȚI | ×: Această abordare poate fi extinsă pentru a obține în mod dinamic lista tabelelor executând o interogare prin psql și introducând rezultatele în buclă în loc de o listă codificată dur:

Aici psql -t -c "SQL" rulează SQL și scoate rezultatele fără antet sau subsol; deoarece există o singură coloană selectată, va exista un nume de tabel pe fiecare linie a ieșirii capturate de $ (comandă), iar shell-ul dvs. va parcurge rândul lor una câte una.

fiecare