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.

CSV & LOAD DATA INFILE

De standaardmanier om rekenbladen te importeren, is door deze in CSV-formaat weg te schrijven en te laden met behulp van het commando LOAD DATA INFILE.

  • Vantevoren moet je de doeltabel defineren, inclusief velden met passende dimensies [1]
drop table if exists ean_code;
CREATE TABLE `webwinkels`.`ean_code` (
  `ean_id` VARCHAR(13) NOT NULL,
  `sku` VARCHAR(45) NULL,
  PRIMARY KEY (`ean_id`));

load data infile "/var/mysql-export/ean01.txt"
into table ean_code

Excel-bestanden importeren

Add-ons & losse routines

Overig

  • MySQL Workbench:
  • LOAD INTO: De gebruikelijke manier is door de data weg te schrijven in CSV-formaat en daarna te laden. Zie elders voor details
  • INSERT INTO: Open het CSV-bestand en voeg 'INSERT INTO'-commando's in. Veel werk, maar bij kleine hoeveelheden data soms een prima oplossing.

Indirect

  • OpenRefine: Veelbelovend, maar geeft bij mij storingen. Het idee zou zijn: Laden in OpenRefine » Extraction » Wegschrijven als tsv-bestand
  • 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

Deze laatste optie lijkt nogal ver gezocht, maar is (okt. 2016) de manier waarop ik dit daadwerkelijk doe.

Tabbladen in bronsbestand samenvoegen

Zie LibreOffice Basic.

Bronnen

Merge Calc sheets

Automate in Calc