Syntaktyka
Użycie LOAD DATA INFILE do załadowania dużej ilości danych do bazy
Patrz poniższy przykład zakładając, że masz ';'-delimited CSV do załadowania do bazy danych.
1;max;male;manager;12-7-19852;jack;male;executive;21-8-1990...1000000;marta;female;accountant;15-6-1992
Utwórz tabelę do wstawienia.
Użyj następującego zapytania, aby wstawić wartości do tej tabeli.
Rozważmy przypadek, w którym format daty jest niestandardowy.
1;max;male;manager;17-Jan-19852;jack;male;executive;01-Feb-1992...1000000;marta;female;accountant;25-Apr-1993
W tym przypadku możesz zmienić format kolumny dob
przed wstawieniem w ten sposób.
Ten przykład LOAD DATA INFILE nie określa wszystkich dostępnych funkcji.
Możesz zobaczyć więcej referencji na temat LOAD DATA INFILE tutaj.
Import pliku CSV do tabeli MySQL
Następujące polecenie importuje pliki CSV do tabeli MySQL z tymi samymi kolumnami przy jednoczesnym poszanowaniu zasad cytowania i ucieczki CSV.
Wczytaj dane z duplikatami
Jeśli użyjesz polecenia LOAD DATA INFILE
do wypełnienia tabeli istniejącymi danymi, często okaże się, że import nie powiedzie się z powodu duplikatów. Istnieje kilka możliwych sposobów na rozwiązanie tego problemu.
Jeśli ta opcja została włączona w twoim serwerze, może być użyta do załadowania pliku, który istnieje na komputerze klienta, a nie na serwerze. Efektem ubocznym jest to, że zduplikowane wiersze dla unikalnych wartości są ignorowane.
LOAD DATA LOCAL INFILE 'path of the file/file_name.txt' INTO TABLE employee
LOAD DATA INFILE 'fname' REPLACE
Gdy użyte jest słowo kluczowe replace, duplikaty unikalnych lub głównych kluczy spowodują, że istniejące wiersze zostaną zastąpione nowymi
Gdy użyte jest słowo kluczowe replace, duplikaty unikalnych lub głównych kluczy spowodują, że istniejące wiersze zostaną zastąpione nowymi istniejący wiersz zostanie zastąpiony nowym
LOAD DATA INFILE 'path of the file/file_name.txt' REPLACE INTO TABLE employee
LOAD DATA INFILE 'fname' IGNORE
Przeciwnie do REPLACE
, istniejące wiersze zostaną zachowane, a nowe zignorowane. To zachowanie jest podobne do LOCAL
opisanego powyżej. Jednak plik nie musi istnieć na komputerze klienta.
LOAD DATA INFILE 'path of the file/file_name.txt' IGNORE INTO TABLE employee
Wczytaj przez tabelę pośredniczącą
Czasami ignorowanie lub zastępowanie wszystkich duplikatów może nie być idealną opcją. Być może będziesz musiał podjąć decyzje na podstawie zawartości innych kolumn. W takim przypadku najlepszą opcją jest załadowanie do tabeli pośredniczącej i przeniesienie stamtąd.
INSERT INTO employee SELECT * FROM intermediary WHERE ...
import / eksport
import
SELECT a,b,c INTO OUTFILE 'result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table;
Eksport
LOAD DATA INFILE 'result.txt' INTO TABLE table;