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.
