MySQLLOAD DATA INFILE

Syntax

Gebruik LOAD DATA INFILE om grote hoeveelheid data in database te laden

Overweeg het volgende voorbeeld in de veronderstelling dat je een ‘;’-delimited CSV hebt om in je database te laden.

1;max;male;manager;12-7-19852;jack;male;executive;21-8-1990...1000000;marta;female;accountant;15-6-1992

Maak de tabel voor het invoegen.

Gebruik de volgende query om de waarden in die tabel in te voegen.

Overweeg het geval waarin het datumformaat niet standaard is.

1;max;male;manager;17-Jan-19852;jack;male;executive;01-Feb-1992...1000000;marta;female;accountant;25-Apr-1993

In dit geval kunt u het formaat van de dob kolom wijzigen alvorens op deze manier in te voegen.

Dit voorbeeld van LOAD DATA INFILE specificeert niet alle beschikbare mogelijkheden.

U kunt hier meer referenties zien over LOAD DATA INFILE.

Emporteer een CSV-bestand in een MySQL tabel

Het volgende commando importeert CSV-bestanden in een MySQL tabel met dezelfde kolommen, met inachtneming van de CSV quoting en escaping regels.

Gegevens laden met doublures

Als u het LOAD DATA INFILE commando gebruikt om een tabel te vullen met bestaande gegevens, zult u vaak merken dat de import mislukt door doublures. Er zijn verschillende manieren om dit probleem op te lossen.

Als deze optie in uw server is ingeschakeld, kan deze worden gebruikt om een bestand te laden dat op de clientcomputer bestaat in plaats van op de server. Een neveneffect is dat dubbele rijen voor unieke waarden worden genegeerd.

LOAD DATA LOCAL INFILE 'path of the file/file_name.txt' INTO TABLE employee

LOAD DATA INFILE ‘fname’ REPLACE

Wanneer het replace keyword wordt gebruikt zullen duplicaat unieke of primaire sleutels resulteren in de bestaande rij worden vervangen door nieuwe

LOAD DATA INFILE 'path of the file/file_name.txt' REPLACE INTO TABLE employee

LOAD DATA INFILE ‘fname’ IGNORE

Het tegenovergestelde van REPLACE, bestaande rijen blijven behouden en nieuwe rijen worden genegeerd. Dit gedrag is vergelijkbaar met LOCAL hierboven beschreven. Het bestand hoeft echter niet op de client computer te bestaan.

LOAD DATA INFILE 'path of the file/file_name.txt' IGNORE INTO TABLE employee

Laden via tussenliggende tabel

Soms kan het negeren of vervangen van alle duplicaten niet de ideale optie zijn. Het kan zijn dat je beslissingen moet nemen op basis van de inhoud van andere kolommen. In dat geval is de beste optie om te laden in een tussenliggende tabel en van daaruit over te zetten.

INSERT INTO employee SELECT * FROM intermediary WHERE ...

import / export

import

SELECT a,b,c INTO OUTFILE 'result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table;

export

LOAD DATA INFILE 'result.txt' INTO TABLE table;

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *