Jak importovat CSV soubor do MySQL: Kompletní průvodce s LOAD DATA INFILE a řešením problémů

1. Úvod do importu CSV souborů do MySQL

Import CSV souborů do MySQL je výkonný způsob, jak zefektivnit správu dat a odstranit potřebu ručního zadávání. Například když potřebujete hromadně importovat informace shromážděné z více zdrojů dat do databáze, nebo automaticky zpracovávat data z externích systémů, import CSV se stává mimořádně užitečným.

Běžné případy použití importu CSV

  • Zpracování velkých objemů dat : Místo ručního zadávání tisíců záznamů je můžete rychle zpracovat pomocí importu CSV.
  • Migrace dat : Praktické při importu dat exportovaných z jiných systémů do MySQL.
  • Pravidelné aktualizace dat : Systémy, které vyžadují periodické aktualizace dat, mohou automatizovat proces pomocí CSV souborů.

2. Předpoklady

Před importem CSV souboru do MySQL je nutné provést několik nastavení a příprav. Tyto kroky zajišťují plynulý a bezchybový proces importu dat.

2.1 Požadované prostředí

  • Instalace MySQL serveru Předpokládá se, že MySQL je řádně nainstalováno. Ujistěte se, že MySQL běží správně ve vašem prostředí, ať už je to Windows, macOS nebo Linux.
  • Ověření potřebných oprávnění Pro import CSV souboru musí mít MySQL uživatel odpovídající oprávnění. Konkrétně je vyžadováno oprávnění k provedení LOAD DATA INFILE. Bez tohoto oprávnění může být import odmítnut.

2.2 Formát CSV souboru

  • Oddělovač CSV soubory jsou typicky odděleny čárkou, ale v některých případech mohou být použity tabulátory nebo středníky. Předem zkontrolujte, jaký oddělovač se používá.
  • Kontrola kódování Pokud je CSV soubor uložen s jiným kódováním znaků (např. UTF-8 nebo Shift-JIS), může během importu dojít k poškození znaků. Ověřte kódování souboru předem a v případě potřeby jej převedete.

3. Import CSV pomocí příkazu LOAD DATA INFILE

Nejčastějším způsobem, jak importovat CSV soubor do MySQL, je použití příkazu LOAD DATA INFILE. Tento příkaz vám umožní snadno načíst velké množství dat do databáze.

3.1 Základní syntaxe

Níže je uvedena základní syntaxe používaná k importu CSV souboru do MySQL.

LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
  • FIELDS TERMINATED BY : Určuje oddělovač polí. Obvykle se používá čárka.
  • LINES TERMINATED BY : Určuje oddělovač řádků. Obvykle se používá \n (nový řádek).

3.2 Příklad provedení

Následující příklad importuje soubor s názvem user_data.csv do tabulky users.

LOAD DATA INFILE '/path/to/user_data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
  • IGNORE 1 LINES : Přeskočí první řádek (hlavičku) CSV souboru. Tato volba je užitečná, když jsou názvy sloupců zahrnuty v prvním řádku.

3.3 Důležité poznámky: Cesta k souboru a oprávnění

Při zadávání cesty k souboru musí být soubor umístěn v adresáři přístupném MySQL serveru. Pokud server nemůže soubor přistupovat, použijte LOAD DATA LOCAL INFILE k načtení dat ze strany klienta.

4. Řešení běžných problémů

Níže jsou uvedena řešení běžných problémů, které se při importu CSV souboru vyskytují.

4.1 Problémy s cestou k souboru

Pokud není cesta k souboru zadána správně, můžete vidět chybovou zprávu jako The MySQL server is not permitted to read from the file. V takovém případě ověřte, že cesta k souboru na straně serveru je správná. Můžete také použít možnost LOAD DATA LOCAL INFILE k načtení lokálního souboru.

LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

4.2 Problémy s kódováním znaků

Pokud je soubor uložen s jiným kódováním znaků, může během importu dojít k poškození znaků. Aby se tomuto problému předešlo, zkontrolujte kódování souboru předem a v MySQL uveďte odpovídající znakovou sadu.

SET NAMES 'utf8mb4';

5. Praktický příklad: Postup importu CSV

Here, we explain the step-by-step procedure for importing an actual CSV file into MySQL.

5.1 Příprava CSV souboru

Create a CSV file (data.csv) with the following content.

id,name,age
1,Taro Yamada,28
2,Hanako Sato,34
3,Ichiro Tanaka,45

5.2 Spuštění příkazu

Run the following command to import the created CSV file into the users table.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

This command imports data starting from the second row of the CSV file into the users table.

6. Pokročilé: Zpracování chyb a prevence duplicitních dat

This section explains how to handle errors during CSV import and how to deal with duplicate data.

6.1 Zpracování duplicitních dat

If data with the same key already exists, you can use the REPLACE option to overwrite duplicate rows with new data.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
REPLACE;

6.2 Zpracování chyb

If errors occur during import but you want to continue processing, use the IGNORE option. This skips problematic rows and imports the remaining valid data.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
IGNORE;

7. Závěr

Importing CSV files into MySQL is a powerful tool for efficiently handling large datasets and migrating data between systems. By understanding the basic procedures and implementing proper error handling and duplicate prevention strategies, you can achieve stable and reliable data imports.

In future articles, we will also explain how to export data from a MySQL database in detail. Continue improving your data management skills.