Z odkazu, co poslal jan.xxx (
http://nahlizenidokn.cuzk.cz/StahniAdresniMistaRUIAN.aspx) jsem to zkusil a pěkně se to do DB naházelo..
### Vytvořit databázi s potřebným kódováním
CREATE DATABASE IF NOT EXISTS `adresy` DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci
### Vytvořit tabulku
CREATE TABLE IF NOT EXISTS `adresni_mista` (
`kod_adm` int(11) NOT NULL,
`kod_obce` int(11) NOT NULL,
`nazev_obce` text NOT NULL,
`nazev_momc` text NOT NULL,
`nazev_mop` text NOT NULL,
`kod_casti_obce` int(11) NOT NULL,
`nazev_casti_obce` text NOT NULL,
`nazev_ulice` text NOT NULL,
`typ_so` text NOT NULL,
`cislo_domovni` text NOT NULL,
`cislo_orientacni` int(11) NOT NULL,
`znak_cisla_orientacniho` text NOT NULL,
`psc` int(11) NOT NULL,
`souradnice_y` text NOT NULL,
`souradnice_x` int(11) NOT NULL,
`plati_od` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin2;
### Rozbalit zip archiv, kde se vytvoří složka CSV
unzip /cesta/k/archivu.zip
### a pustit po dosazení proměnných tento skript:
#!/bin/bash
CESTA_K_CSV="/cesta/k/CSV" ## cesta, kde jsi rozbalil archiv (cesta až k souborům)
SEZNAM="/tmp/seznam.txt" ## může zůstat přednastaveno, je to jen dočasný soubor
######################
USER="root" ## uživatel do DB
PASSWORD="root" ## heslo do DB
DB="adresy" ## databáze
TABLE="adresni_mista" ## tabulka v DB, kam se budou importovat data
######################
# smaže první řádek v každém souboru:
find $CESTA_K_CSV -type f -exec sed -i '1d' {} \;
# seznam souborů pro import
find $CESTA_K_CSV -type f > $SEZNAM
# import
while read line; do
mysql -u $USER -p$PASSWORD --local_infile=1 $DB -e "LOAD DATA LOCAL INFILE '$line' INTO TABLE $TABLE FIELDS TERMINATED BY ';'"
done < $SEZNAM
rm $SEZNAM;
exit;
Mně to v pohodě naimportovalo..