MySQL Import Gegevens van CSV met behulp van Load Data Infile

Ik importeer een aantal gegevens van 20000 rijen van een CSV-bestand naar MySQL.

Kolommen in de CSV zijn in een andere volgorde dan de kolommen van MySQL Table. Hoe het automatisch kolommen toewijzen die overeenkomen met de kolommen van MySQL-tabel?

Wanneer ik

uitvoeren

LOAD DATA INFILE'abc.csv' INTO TABLE abc

Deze query voegt alle gegevens toe aan de eerste kolom.

Suggereer de automatische syntaxis voor het importeren van gegevens naar MySQL.


Antwoord 1, Autoriteit 100%

U kunt gebruiken DATA Infile Opdracht om CSV bestand in tabel te importeren.

Controleer deze link MySQL – Load Data Infile .

LOAD DATA LOCAL INFILE 'abc.csv' INTO TABLE abc
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(col1, col2, col3, col4, col5...);

voor MySQL 8.0-gebruikers:

Gebruik van de LOCALtrefwoord HOLD-beveiligingsrisico’s en vanaf MySQL 8.0 De LOCALMogelijkheid is ingesteld op FalseStandaard. Mogelijk ziet u de foutmelding:

FOUT 1148: De gebruikte opdracht is niet toegestaan ​​met deze MySQL-versie

U kunt het overschrijven door de instructies in de docs .
Pas op dat dergelijke overschrijving het beveiligingsprobleem niet oplost, maar eerder gewoon een erkent dat u weet en bereid bent het risico te nemen.


Antwoord 2, Autoriteit 29%

U moet waarschijnlijk de FIELDS TERMINATED BY ','of wat het scheidingsteken ook is, instellen.

Voor een CSV-bestand zou uw verklaring er als volgt uit moeten zien:

LOAD DATA INFILE 'data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

Antwoord 3, autoriteit 27%

Voordat u het bestand importeert, moet u het volgende voorbereiden:

  • Een databasetabel waarin de gegevens uit het bestand worden geïmporteerd.
  • Een CSV-bestand met gegevens die overeenkomen met het aantal kolommen van de
    tabel en het type gegevens in elke kolom.
  • Het account, dat verbinding maakt met de MySQL-databaseserver, heeft FILE
    en INSERT-rechten.

Stel dat we de volgende tabel hebben:

MAAK TABEL MET DE VOLGENDE VRAAG:

CREATE TABLE IF NOT EXISTS `survey` (
  `projectId` bigint(20) NOT NULL,
  `surveyId` bigint(20) NOT NULL,
  `views` bigint(20) NOT NULL,
  `dateTime` datetime NOT NULL
);

UW CSV-BESTAND MOET GOED WORDEN GEFORMATTEERD VOOR VOORBEELD ZIE VOLGENDE
BIJGEVOEGDE AFBEELDING :

Als alles in orde is.. Voer de volgende vraag uit om DATA UIT CSV-BESTAND TE LADEN:

OPMERKING: voeg een absoluut pad van uw CSV-bestand toe

LOAD DATA INFILE '/var/www/csv/data.csv' 
INTO TABLE survey 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

Als alles is gedaan. je hebt met succes gegevens van CSV naar tabel geëxporteerd


Antwoord 4, autoriteit 9%

Syntaxis:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL]
INFILE 'file_name' INTO TABLE `tbl_name`
CHARACTER SET [CHARACTER SET charset_name]
FIELDS [{FIELDS | COLUMNS}[TERMINATED BY 'string']] 
[LINES[TERMINATED BY 'string']] 
[IGNORE number {LINES | ROWS}]

Zie dit voorbeeld:

LOAD DATA LOCAL INFILE
'E:\\wamp\\tmp\\customer.csv' INTO TABLE `customer`
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

Antwoord 5, autoriteit 5%

Voeg meer dan 7000000 record in 1 minuut in de database in (supersnelle zoekopdracht met berekening)

   LOAD DATA LOCAL INFILE "'.$file.'"
    INTO TABLE tablename
    FIELDS TERMINATED by \',\'
    LINES TERMINATED BY \'\n\'
    IGNORE 1 LINES
    (isbn10,isbn13,price,discount,free_stock,report,report_date)
     SET RRP = IF(discount = 0.00,price-price * 45/100,IF(discount = 0.01,price,IF(discount != 0.00,price-price * discount/100,@RRP))),
         RRP_nl = RRP * 1.44 + 8,
         ID = NULL

RRP en RRP_bl zijn niet in csv, maar we worden berekend dat en nadat we dat hebben ingevoegd.


Antwoord 6

Als u LOAD DATA LOCAL INFILEuitvoert vanuit de Windows-shell, en u OPTIONALLY ENCLOSED BY '"'moet gebruiken, moet u zoiets als dit doen om tekens correct te laten ontsnappen:

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql" -u root --password=%password% -e "LOAD DATA LOCAL INFILE '!file!' INTO TABLE !table! FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"^""' LINES TERMINATED BY '\n' IGNORE 1 LINES" --verbose --show-warnings > mysql_!fname!.out

Antwoord 7

stel dat je xampp en phpmyadmin gebruikt

je hebt bestandsnaam ‘ratings.txt’ tabelnaam ‘ratings’ en databasenaam ‘movies’

als uw xampp is geïnstalleerd in “C:\xampp\”

kopieer uw “ratings.txt”-bestand naar de map “C:\xampp\mysql\data\movies”

LOAD DATA INFILE 'ratings.txt' INTO TABLE ratings FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

Ik hoop dat dit je kan helpen om je fout weg te laten als je dit op localhost doet


Antwoord 8

Je kunt proberen om als volgt in te voegen:

LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);

Antwoord 9

Je kunt gegevens laden uit een csv- of tekstbestand.
Als u een tekstbestand hebt met records uit een tabel, kunt u die records in de tabel laden.
Als u bijvoorbeeld een tekstbestand heeft, waarbij elke rij een record is met de waarden voor elke kolom, kunt u de records op deze manier laden.

tabel.sql

id //field 1
name //field2

tabel.txt

1,peter
2,daniel
...

–voorbeeld op vensters

LOAD DATA LOCAL INFILE 'C:\\directory_example\\table.txt'
INTO TABLE Table
CHARACTER SET UTF8
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'; 

Antwoord 10

Ik ontvocht de foutcode: 1290. De MySQL-server wordt uitgevoerd met de –Secure-File-Priv
Optie, dus het kan deze verklaring niet uitvoeren

Dit werkte voor mij op Windows 8.1 64 bit met behulp van Wampserver 3.0.6 64bit.

Bewerkte My.ini-bestand van C: \ WAMP64 \ BIN \ MYSQL \ MYSQL5.7.14

Invoer verwijderen Secure_file_Priv C: \ WAMP64 \ tmp \ (of welke dir ook hier)

stopte alles -Exit Wamp etc. en start alles opnieuw; Punt vervolgens mijn CVS-bestand op C: \ WAMP64 \ bin \ mysql \ mysql5.7.14 \ data \ u242349266_recur (het laatste dir is mijn database-naam)

uitgevoerd
Laad gegevensinfile ‘myfile.csv’

In tabel alumnos

Velden beëindigd door ‘,’

ingesloten door ‘”‘

Lijnen beëindigd door ‘\ r \ n’

negeer 1 lijnen

… en voila !!!


Antwoord 11

Tegen deze dagen (einde 2019) Ik geef de voorkeur aan een hulpmiddel zoals http: / /www.convertcsv.com/csv-to-sql.htm
Ik heb veel rijen die je kunt uitvoeren gepartitioneerde blokken die gebruikersfouten besparen wanneer CSV afkomstig is van een eindgebruikerspreadsheet.

Other episodes