sql >> Databasteknik >  >> RDS >> PostgreSQL

Kan jag automatiskt skapa en tabell i PostgreSQL från en csv-fil med rubriker?

Det finns ett mycket bra verktyg som importerar tabeller till Postgres från en csv-fil. Det är ett kommandoradsverktyg som heter pgfutter (med binärfiler för Windows, Linux, etc.). En av dess stora fördelar är att den känner igen attribut-/kolumnnamnen också.

Användningen av verktyget är enkel. Till exempel om du vill importera myCSVfile.csv :

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

Detta kommer att skapa en tabell (kallad myCSVfile ) med kolumnnamnen hämtade från csv-filens rubrik. Dessutom kommer datatyperna att identifieras från befintliga data.

Några anteckningar:Kommandot pgfutter varierar beroende på vilken binär du använder, t.ex. det kan vara pgfutter_windows_amd64.exe (byt namn på det om du tänker använda det här kommandot ofta). Kommandot ovan måste köras i ett kommandoradsfönster (t.ex. i Windows kör cmd och kontrollera pgfutter är tillgänglig). Om du vill ha ett annat tabellnamn lägg till --table "myTable"; för att välja ett speciellt databasschema använder vi --schema "mySchema" . Om du använder en extern databas använd --host "myHostDomain" .

Ett mer utarbetat exempel på pgfutter för att importera myFile till myTable är den här:

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

Troligtvis kommer du att ändra några datatyper (från text till numerisk) efter importen:

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


  1. Checker Run

  2. Snabbaste sättet att avgöra om posten finns

  3. Enkel Oracle-fråga:literal matchar inte formatsträngen

  4. Skapa en vy i SQL Server 2017