Ich importiere einige Daten von 20000 Zeilen aus einer CSV-Datei in MySQL.
Die Spalten in der CSV befinden sich in einer anderen Reihenfolge als die Spalten der MySQL-Tabelle. Wie ordne ich automatisch Spalten zu, die MySQL-Tabellenspalten entsprechen?
Wenn ich ausführe
LOAD DATA INFILE'abc.csv' INTO TABLE abc
Diese Abfrage fügt alle Daten zur ersten Spalte hinzu.
Bitte schlagen Sie eine automatische Syntax für den Import von Daten nach MySQL vor.
mysql
csv
import
load-data-infile
MANJEET
quelle
quelle
Antworten:
Mit dem Befehl LOAD DATA INFILE können Sie eine CSV- Datei in eine Tabelle importieren .
Überprüfen Sie diesen Link MySQL - LOAD DATA INFILE .
Für MySQL 8.0-Benutzer:
Mit dem
LOCAL
Schlüsselwort hold Sicherheitsrisiken und ab MySQL 8.0 ist dieLOCAL
FunktionFalse
standardmäßig eingestellt. Möglicherweise wird der Fehler angezeigt:Sie können es überschreiben, indem Sie den Anweisungen in den Dokumenten folgen . Beachten Sie, dass ein solches Überschreiben nicht das Sicherheitsproblem löst, sondern lediglich eine Bestätigung, dass Sie sich bewusst sind und bereit sind, das Risiko einzugehen.
quelle
IGNORE 1 LINES
genau hier passiert? Danke im Voraus.Sie müssen wahrscheinlich das
FIELDS TERMINATED BY ','
oder was auch immer das Trennzeichen sein mag.Für eine CSV-Datei sollte Ihre Anweisung folgendermaßen aussehen:
quelle
Vor dem Importieren der Datei müssen Sie Folgendes vorbereiten:
Angenommen, wir haben folgende Tabelle:
TABELLE MIT FOLGENDER ABFRAGE ERSTELLEN:
Wenn alles in Ordnung ist. Bitte führen Sie die folgende Abfrage aus, um Daten aus der CSV-Datei zu laden:
Wenn alles getan hat. Sie haben Daten aus CSV erfolgreich in eine Tabelle exportiert
quelle
Syntax:
Siehe dieses Beispiel:
quelle
Fügen Sie mehr als 7000000 Datensätze in 1 Minute in die Datenbank ein (superschnelle Abfrage mit Berechnung)
RRP und RRP_nl und RRP_bl sind nicht in csv, aber wir berechnen das und nach dem Einfügen das.
quelle
Wenn Sie
LOAD DATA LOCAL INFILE
über die Windows-Shell ausgeführt werden und diese verwenden müssenOPTIONALLY ENCLOSED BY '"'
, müssen Sie Folgendes tun, um Zeichen ordnungsgemäß zu umgehen:quelle
Angenommen, Sie verwenden xampp und phpmyadmin
Sie haben den Dateinamen 'bewertungen.txt' Tabellenname 'Bewertungen' und den Datenbanknamen 'Filme'
wenn Ihre xampp in "C: \ xampp \" installiert ist
Kopieren Sie Ihre Datei "reviews.txt" in den Ordner "C: \ xampp \ mysql \ data \ movies"
Ich hoffe, dies kann Ihnen helfen, Ihren Fehler zu vermeiden, wenn Sie dies auf localhost tun
quelle
Sie können Daten aus einer CSV- oder Textdatei laden. Wenn Sie eine Textdatei mit Datensätzen aus einer Tabelle haben, können Sie diese Datensätze in die Tabelle laden. Wenn Sie beispielsweise eine Textdatei haben, in der jede Zeile ein Datensatz mit den Werten für jede Spalte ist, können Sie die Datensätze auf diese Weise laden.
table.sql
table.txt
- Beispiel unter Windows
quelle
Ich habe den Fehlercode 1290 erhalten. Der MySQL-Server wird mit der Option --secure-file-priv ausgeführt, sodass diese Anweisung nicht ausgeführt werden kann
Dies funktionierte für mich unter Windows 8.1 64 Bit mit Wampserver 3.0.6 64bit.
Die Datei my.ini wurde unter C: \ wamp64 \ bin \ mysql \ mysql5.7.14 bearbeitet
Löschen Sie den Eintrag secure_file_priv c: \ wamp64 \ tmp \ (oder welches Verzeichnis auch immer Sie hier haben)
Habe alles gestoppt - Wamp usw. verlassen - und alles neu gestartet; Dann stecke meine CVS-Datei in C: \ wamp64 \ bin \ mysql \ mysql5.7.14 \ data \ u242349266_recur (das letzte Verzeichnis ist mein Datenbankname).
LOAD DATA INFILE 'myfile.csv' ausgeführt
IN TABELLE Alumnos
FELDER BEENDET MIT ','
UMSCHLOSSEN '"'
LINIEN BEENDET MIT '\ r \ n'
Ignorieren Sie 1 Zeilen
... und VOILA !!!
quelle
Sie können versuchen, Folgendes einzufügen:
quelle
In diesen Tagen (Ende 2019) bevorzuge ich die Verwendung eines Tools wie http://www.convertcsv.com/csv-to-sql.htm. Ich habe viele Zeilen, in denen Sie partitionierte Blöcke ausführen können, um Benutzerfehler zu vermeiden, wenn CSV von dort kommt eine Endbenutzer-Tabelle.
quelle