1

Temat: Stworzenie bazy z pliku CSV

Witam,

Od razu przepraszam, jezeli taki temat istnieje, ale ja niestety go nie znalazlem.
Zainstalowalem sobie postgresql, ktory ma zastepowac accessa ktory ma ograniczenie 2gb pojemnosci.
Czy istnieje jakas mozliwosc zaimportowania pliku, ktory od razu stworzy tabele razem z nazwami kolumn?
Uzylem polecenia:
COPY public.testowa FROM 'c:\\projekty\\textcsv.csv' USING DELIMITERS ';'
To polecenie niestety dziala tylko gdy stworzona jest juz baza ze zdefiniowanymi kolumnami, wiec jak dla mnie nie jest to satysfakcjonujace.
Dodatkowo importuje sie razem z nazwami kolumn - mozna to jakos ominac?

2

Odp: Stworzenie bazy z pliku CSV

Kiedyś exportowałem tabele za pomocą ODBC. Ale pola w nowej tabeli utworzyły się chyba typu textowego. Mozna by utworzyć taka tabele w postgresie z odpowiednim typem pól i przenieść dane do niej z tej która była exportowana.

Robiłem to dawno dla zabawy więc głowy nie dam, że wszystko będzie ok.


Zrobiłem właśnie export, poszło ładnie tabela nieduża tylko 1000 rekordów, pola liczbowe poszły jako integer i double precision, pola tekstowe jako varchar, daty jako timestamptz.

Trzeba dokładniej przetestować, ale wygląda, że taki eksport mógłby zdać egzamin. Nie wiem jak by to było przy bardzo dużej tabeli. Warto spróbować.

Ostatnio edytowany przez adamleon (2013-01-30 10:00:48)

3

Odp: Stworzenie bazy z pliku CSV

a jak sobie poradzic, zeby przy imporcie z pliku nie importowal nazw kolumn czyli pierwszego wiersza?

4

Odp: Stworzenie bazy z pliku CSV

COPY klienci3 FROM 'f:\\rapid\\sqloko\\klienci.csv' USING DELIMITERS';' CSV HEADER

CSV HEADER wyklucza pierwszy wiersz, ale nadal nie wiem czy mozna od dowolnego wiersza?

5

Odp: Stworzenie bazy z pliku CSV

A nie można dodać kolumny z jakimś wpisem dla niechcianych wierszy, a po skopiowaniu usunąć niechciane wiersze i kolumnę ?

6

Odp: Stworzenie bazy z pliku CSV

mozna, ale po co komplikowac sobie sprawe, jezeli isnieje jakis sposob, zeby imortowac od wybranego wiersza?

7

Odp: Stworzenie bazy z pliku CSV

8

Odp: Stworzenie bazy z pliku CSV

mam jeszcze pytanie, czy przy imporcie danych tekstowych mozna jakos wykluczyc cudzyslowy, zeby nie pojawialy sie w tabeli?
obecnie przy kazdym imporcie wszystkie dane tekstowe w polach mam w cudzyslowie...
radze sobie dzieki "replace", ale strasznie to czasochlonne jesli ma sie kilka milionow rekordow...

9

Odp: Stworzenie bazy z pliku CSV

10

Odp: Stworzenie bazy z pliku CSV

pomoglo:)
wystarczy na koncu zapytania dodac CSV:

COPY public.testowa FROM 'c:\\projekty\\textcsv.csv' USING DELIMITERS ';' CSV;