MySQL CSV Import: CSV-Datei in MySQL-Datenbank importieren
Wie importiert man eine CSV-Datei in MySQL? Dieses Tutorial zeigt Schritt für Schritt, wie Sie mit dem MySQL Adapter einen MySQL CSV Import durchführen – von der Anlage der Datenbank und Importtabelle bis zur fertigen Datenaufbereitung. Der Prozess umfasst die komplette Datenmigration – von der strukturierten CSV-Quelldatei bis zur befüllten SQL-Tabelle im MySQL-DatenbankServer.
Die Einrichtung der MySQL-Datenbank erfolgt wahlweise über die MySQL Workbench (wie hier gezeigt) oder phpMyAdmin – beide Wege werden berücksichtigt.
Damit nicht nur der reine Import beschrieben wird, erklären wir am Ende auch, wie Sie bereits vorhandene Datensätze während des Importvorgangs aktualisieren können. Dabei wird verdeutlicht, wann FlowHeater anhand der Primary-Key-Einstellungen die CSV-Daten beim Datenimport anfügt (SQL INSERT) oder aktualisiert (SQL UPDATE).
Am Ende des Artikels finden Sie ein Tutorial-Video, das den kompletten Ablauf für den MySQL CSV Import veranschaulicht. Die fertige Definition können Sie im Verzeichnis Beispiele\MySQLAdapter\csv-import-mysql.fhd ansehen. Alle Beispiele sind auch im ZIP Download Archiv zum FlowHeater enthalten.
Inhaltsverzeichnis
- MySQL Datenbank und Import-Tabelle anlegen
- CSV-Datei für den MySQL-Import auswählen
- MySQL-Server-Parameter einstellen
- SQL-Felder und Datentypen konfigurieren
- CSV <-> MySQL-Felder verbinden
- Die fertige Datenimport-Definition
- MySQL CSV Import starten: Test und Ausführung
- Testlauf: INSERT vs. UPDATE
- CSV in MySQL importieren mit phpMyAdmin
- Tutorial Video
MySQL-Datenbank und Import-Tabelle anlegen
MySQL Import Tabelle anlegenFangen wir an: Zuerst legen wir die MySQL-Datenbank bzw. den Katalog für den Import an. Gehen Sie dazu über die MySQL Workbench und erstellen Sie eine neue Datenbank mit dem Namen FlowHeater. Erzeugen Sie anschließend eine neue Tabelle „Import" mit folgenden Eigenschaften:
- 8 Spalten: ID, Anrede, Vorname, Name, Straße, PLZ, Ort, GebDat
- Primary Key: Feld ID mit der Eigenschaft AUTO INCREMENT
CSV-Datei für den MySQL-Import auswählen
CSV-Datei auswählenÖffnen Sie FlowHeater und klicken Sie auf „Neu", um eine neue Definition zu erzeugen. Stellen Sie im Dialog Folgendes ein:
- READ Adapter: TextFile Adapter
- WRITE Adapter: MySQL Adapter
Bestätigen Sie mit OK und öffnen Sie den Configurator für den READ Adapter. Wählen Sie die Datei import.csv aus dem Verzeichnis Beispiele\MySqlAdapter. Aktivieren Sie „Erste Zeile enthält Feldnamen" und bestätigen Sie die Übernahme der Feldnamen. Alle übrigen Einstellungen belassen Sie beim Standard.
MySQL-Server-Parameter einstellen
Server Parameter festlegenTragen Sie im Configurator des WRITE Adapters folgende Parameter ein:
- Servername: z. B. localhost
- User/Passwort: gültiger MySQL-Benutzer mit Passwort
- Datenbank: zuvor erzeugte MySQL-Datenbank „FlowHeater"
- Option aktivieren: „Daten aktualisieren (Update)"
Wechseln Sie anschließend auf den Reiter „Felder / Datentypen".
MySQL-Felder und Datentypen konfigurieren
MySQL Felder und DatentypenWählen Sie im Kombinationsfeld die Tabelle „Import" aus und klicken Sie auf „Einlesen". Damit werden die SQL-Schemainformationen vom MySQL-Server abgerufen und in der FlowHeater-Definition gespeichert:
- Feldnamen, Feldlängen, Datentypen
- Schlüsselinformationen/Primary Key
- Auto-Increment-Eigenschaften
Damit ist die Feldzuordnung zwischen CSV-Quelldatei und MySQL-Datenbanktabelle vollständig definiert – FlowHeater kann die Daten jetzt korrekt transformieren und in die Zieldatenbank schreiben.
Wichtig: Die ausgelesenen Informationen können für Sonderfälle angepasst werden – z. B. können Sie durch Ändern der Primary-Key-Felder steuern, anhand welcher Felder der MySQL Adapter ein Update durchführen soll. Eine Änderung hier wirkt sich nicht auf die zugrunde liegende MySQL-Tabelle aus.
CSV ↔ MySQL-Felder verbinden
Felder verbindenVerlassen Sie den Dialog über OK und klicken Sie im Designer auf „Felder automatisch verbinden". Ihr Bildschirm sollte jetzt ungefähr so aussehen: Auf der READ-Seite verbleiben 2 Felder ohne Verbindung, auf der WRITE-Seite 3 Felder.
Schritt 1: Feld Geburtsdatum verbinden
Ziehen Sie zunächst das Feld Geburtsdatum per Drag & Drop auf das Feld GebDat der WRITE-Seite.
Schritt 2: Clone Heater einfügen
Bewegen Sie die Maus über die erzeugte Pipe, sodass diese fett gezeichnet wird, und klicken Sie mit der rechten Maustaste, um das Kontextmenü zu öffnen. Wählen Sie „Clone Heater einfügen". Die Pipe wird an der Mausposition unterbrochen und der Clone Heater wird eingefügt. Ziehen Sie den Heater an das untere Ende des Designbereichs, um Platz zu schaffen.
Schritt 3: PLZ/Ort in zwei Felder aufteilen
Jetzt haben wir Platz, um das kombinierte Feld PLZ/Ort der CSV-Datei in die getrennten Felder PLZ und Ort der MySQL-Tabelle zu transformieren. Gehen Sie wie folgt vor:
- Ziehen Sie aus dem Heater-Auswahlbereich 2× den SubString Heater auf den Designer – etwa auf Höhe der Felder PLZ und Ort
- Verbinden Sie das Feld PLZ/Ort der READ-Seite mit beiden SubString Heatern
- Verbinden Sie den ersten SubString Heater mit dem Feld PLZ der WRITE-Seite
- Verbinden Sie den zweiten SubString Heater mit dem Feld Ort der WRITE-Seite
Schritt 4: SubString Heater konfigurieren
Öffnen Sie jeden SubString Heater per Doppelklick und tragen Sie folgende Werte ein:
| Feld | Startindex | Länge |
| PLZ | 1 | 5 |
| Ort | 7 | 0 |
Hinweis: Länge 0 bedeutet „bis zum Ende der Zeichenkette" – damit wird der gesamte Ortsname ab Position 7 übernommen, unabhängig von seiner Länge.
Fertige Import Definition
MySQL CSV Import - Fertige Definition
MySQL CSV Import starten: Test und Ausführen
Definition ausführenKlicken Sie auf den rot markierten Button (alternativ F5), um den Test-und-Ausführen-Dialog zu öffnen. Vor dem eigentlichen Import können Sie einen Testlauf starten, ohne dass Daten im Ziel geändert werden:
- Klicken Sie auf „Definition ausführen" – der Testlauf beginnt
- Nach Abschluss erscheint ein Ergebnisfenster
- Deaktivieren Sie „Testlauf …" und starten Sie die Definition erneut für den echten Import
Dieses INSERT/UPDATE-Verhalten ist besonders praktisch bei der Datenmigration oder beim regelmäßigen Abgleich externer CSV-Daten mit einem bestehenden Datenbankimport.
Hinweis: Über den Abbrechen-Button können langlaufende FlowHeater-Definitionen jederzeit gestoppt werden.
Testlauf Ergebnis: INSERT vs. UPDATE
Testlauf ErgebnisHier sehen wir, dass FlowHeater das Feld ID automatisch als Autowert bzw. Identitätsspalte erkannt hat. Schließen Sie das Fenster, deaktivieren Sie die Option „Testlauf …“ im Test- und Ausführen-Dialog und starten Sie die Definition erneut. Jetzt wird die CSV-Textdatei wirklich in die Tabelle „Import“ des angegebenen MySQL-Servers geschrieben.
Beachten Sie, dass das Feld ID jetzt einen Wert zugewiesen bekommen hat und im ersten Feld „FH Action“ der Wert „insert“ steht. Wiederholen Sie den Vorgang ein zweites Mal: FlowHeater erkennt, dass es sich hierbei um ein SQL UPDATE handelt.
Öffnen Sie den Configurator des MySQL Adapters und deaktivieren Sie „Daten aktualisieren (Update)“. Starten Sie die Definition erneut und sehen Sie sich das Ergebnis an (mit oder ohne Test): FlowHeater fügt die Datensätze erneut an die Tabelle Import an.
Warum wird das Feld ID nicht in die Datenbank durchgereicht, obwohl eine Verbindung (Pipe) besteht?
Das Feld ID besitzt die Eigenschaft AUTO INCREMENT und wird automatisch von der Datenbank befüllt. Die Pipe ist ausschließlich für Updates erforderlich.
CSV in MySQL importieren mit phpMyAdmin
Alternativ zum FlowHeater MySQL Adapter können Sie eine CSV-Datei in MySQL über phpMyAdmin importieren. phpMyAdmin bietet eine integrierte Import-Funktion, die sich besonders für Webhosting-Umgebungen eignet, in denen kein direkter Datenbankzugriff via Workbench möglich ist.
Hinweis: Mit dem FlowHeater MySQL Adapter ist es möglich direkt und verschlüsselt auf Webhosting umgegbungen per SSH Tunnel zugzugreifen!
So importieren Sie eine CSV-Datei in MySQL mit phpMyAdmin
- Öffnen Sie phpMyAdmin und wählen Sie die gewünschte MySQL-Datenbank im linken Navigationsbereich aus
- Klicken Sie auf die Zieltabelle und wählen Sie den Reiter „Importieren"
- Klicken Sie auf „Durchsuchen" und wählen Sie Ihre CSV-Datei aus
- Stellen Sie unter Format den Wert „CSV" ein
- Definieren Sie das Trennzeichen (Delimiter) – standardmäßig ein Komma (,) oder Semikolon (;)
- Aktivieren Sie bei Bedarf „Erste Zeile enthält Spaltennamen", damit die Feldnamen automatisch zugeordnet werden
- Klicken Sie auf „OK" – phpMyAdmin importiert die CSV-Datei direkt in die MySQL-Tabelle
Tutorial Video zum MySQL CSV Import
MySQL® ist sind eingetragene Markenzeichen der MySQL AB