Előfordulhat, hogy egy SQL adatbázist fel szeretnénk tölteni például egy .csv fájlban található adatokkal. Egyszerűnek tűnő dolog lehet ha van phpmyadmin a szerveren, de mint kiderült ez rettentően lassú és valamiért az adatbázis felénél nekem mindig megállt a folyamat.

Szerencsére a megoldás sem túl bonyolult.

1. Először is az adatbázis fájlt másoljuk a szerverre.

2. Lépjünk be a MySQL-be

mysql --user=xxxx --password=yyyy

3. Válasszuk ki az adatbázist

USE <adatbázisnév>

Kacsacsőr nem kell!

4. A következő parancssorral tudjuk importálni a fájlunkat:

LOAD DATA LOCAL INFILE '<fájlnév>' INTO TABLE <táblanév> FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (`<oszlop1>`,`<oszlop2>`,`<oszlop3>`,`<oszlop4>`,`<oszlop5>`);

Vigyázzunk a fájlnévnél és az elválasztó karaktereknél aposztróf van, de a sor végén az oszlopneveknél visszafele aposztróf!

Ebben a példában a kiválasztott fájl tartalmát importáljuk a <táblanév> táblába, az oszlopokat vessző választja el, és zárójelek között vannak, a sor végét az enter jelenti és az első sort nem olvassuk be (mert az a fejléc). Ráadásul a táblánkban több oszlop van, mint a fájlunkban, így megadtuk azokat az oszlopneveket, amikbe az adatoknak kerülnie kell.


Konfiguráció:

Fujitsu Siemens Amilo notebook - Debian 9 Stretch

SQL: MariaDB 10.4.17

 


Forrás:

https://dev.mysql.com/doc/refman/8.0/en/load-data.html

https://stackoverflow.com/questions/6605765/importing-a-csv-into-mysql-via-command-line


 

You have no rights to post comments