Databestanden importeren (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

PMA

PHPMyAdmin heeft een hele aardige import-functie. Wat daar zo aardig aan is: Er wordt dynamisch een tabel aangemaakt van (meestal) passende dimensies.

Maar zoals nix in deze wereld perfect is, is ook dit dat niet:

  • PMA is niet altijd beschikbaar
  • Time out-storingen
  • Onduidelijke foutmeldingen.

In zulke gevallen is 't waarschijnlijk handiger om rechtstreeks mbv. SQL te importeren.

Vanuit Excel

Vaak krijg ik data aangeleverd in Excel-formaat. Je weet wel, data nare semi-gesloten format. Hoe daar een mouw aan te passen?

Meestal volg ik de laatste methode hieronder: Ik open het bestand in LibreOffice Calc, en schrijf het weg in ods-formaat. Voilà: Geen Excel meer in the picture.

Add-ons & losse programma'tjes

Indirect

  • OpenRefine: Veelbelovend, maar geeft bij mij storingen. Het idee zou zijn: Laden in OpenRefine » Extraction » Wegschrijven als tsv-bestand
  • CSV: Wegschrijven in CSV-formaat, en dan op een andere manier importeren
  • LibreOffice Basic: Bestand opslaan als ods-bestand » Voorbereidend werk doen mbv. macro's (ihb.: Tabbladen samenvoegen) » Wegschrijven als tsv-bestand » Laden met een eigen LOAD INTO-routine in MySQL

SQL - LOAD DATA

LOAD DATA is het standaardcommando om te importeren. Helaas kun je het niet toepassen in sprocs; alleen in losse SQL-scripts.

Zie LOAD DATA (MySQL) voor details.

SQL - LOAD_FILE

De beperkingen omtrent LOAD DATA schijnen niet te gelden voor LOAD_FILE. Hierbij wordt de data in één groot object ingeladen, dus wellicht geschikt om á là PMA dynamisch de bijbehorende tabel te genereren. LOAD_FILE lijkt echter z'n eigen beperkingen te hebben, en tot op heden heb ik het nog niet aan de praat gekregen.

Zie ook

Bronnen

Merge Calc sheets

Automate in Calc

Import MySQL

Beperkingen stored procedures