sql >> Database >  >> RDS >> PostgreSQL

Kan ik automatisch een tabel maken in PostgreSQL vanuit een csv-bestand met headers?

Er is een zeer goede tool die tabellen in Postgres importeert vanuit een csv-bestand. Het is een opdrachtregelprogramma genaamd pgfutter (met binaire bestanden voor windows, linux, enz.). Een van de grote voordelen is dat het ook de namen van attributen/kolommen herkent.

Het gebruik van de tool is eenvoudig. Als u bijvoorbeeld myCSVfile.csv . wilt importeren :

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

Dit zal een tabel maken (genaamd myCSVfile ) met de kolomnamen uit de kop van het csv-bestand. Bovendien zullen de gegevenstypes worden geïdentificeerd aan de hand van de bestaande gegevens.

Een paar opmerkingen:Het commando pgfutter varieert afhankelijk van het binaire bestand dat u gebruikt, b.v. het zou pgfutter_windows_amd64.exe kunnen zijn (hernoem het als u van plan bent deze opdracht vaak te gebruiken). De bovenstaande opdracht moet worden uitgevoerd in een opdrachtregelvenster (bijvoorbeeld in Windows voer cmd uit en zorg ervoor dat pgfutter toegankelijk is). Als u een andere tabelnaam wilt hebben, voeg dan --table "myTable" toe; om een ​​bepaald databaseschema te selecteren, ons --schema "mySchema" . Als u een externe database gebruikt, gebruik dan --host "myHostDomain" .

Een uitgebreider voorbeeld van pgfutter om myFile te importeren in myTable is deze:

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

Hoogstwaarschijnlijk zult u na het importeren enkele gegevenstypen (van tekst naar numeriek) wijzigen:

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


  1. Hoe tekenreeksarray in SQL-parameter door te geven aan IN-clausule in SQL

  2. Hoe kan ik alle rijen opvragen binnen een straal van 5 mijl van mijn coördinaten?

  3. Hoe krijg ik het huidige jaar met SQL op Oracle?

  4. Functie om mediaan te berekenen in SQL Server