sql >> Databáze >  >> RDS >> PostgreSQL

Mohu automaticky vytvořit tabulku v PostgreSQL ze souboru csv s hlavičkami?

Existuje velmi dobrý nástroj, který importuje tabulky do Postgresu ze souboru csv. Je to nástroj příkazového řádku zvaný pgfutter (s binárními soubory pro Windows, linux atd.). Jednou z jeho velkých výhod je, že rozpoznává také názvy atributů/sloupců.

Použití nástroje je jednoduché. Například pokud chcete importovat myCSVfile.csv :

pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv

Tím se vytvoří tabulka (nazvaná myCSVfile ) s názvy sloupců převzatými z hlavičky souboru csv. Datové typy budou navíc identifikovány ze stávajících dat.

Několik poznámek:Příkaz pgfutter se liší v závislosti na binárním systému, který používáte, např. může to být pgfutter_windows_amd64.exe (pokud chcete tento příkaz používat často, přejmenujte jej). Výše uvedený příkaz je třeba provést v okně příkazového řádku (např. ve Windows spusťte cmd a zajistěte pgfutter je přístupný). Pokud byste chtěli mít jiný název tabulky, přidejte --table "myTable"; pro výběr konkrétního databázového schématu nám --schema "mySchema" . V případě, že přistupujete k externí databázi, použijte --host "myHostDomain" .

Propracovanější příklad pgfutter importovat myFile do myTable je toto:

pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv

S největší pravděpodobností po importu změníte několik typů dat (z textových na číselné):

alter table myTable
  alter column myColumn type numeric
    using (trim(myColumn)::numeric)


  1. In-Memory OLTP:Co je nového v SQL Server 2016

  2. Omezení cizího klíče může způsobit cykly nebo více kaskádových cest?

  3. Jak upravit soubor MySQL my.cnf

  4. NASTAVIT NÁZVY utf8 v MySQL?