Polecenie LOAD DATA INFILE jest w MySQL/MariaDB standardowym mechanizmem szybkiego importu danych z pliku tekstowego (np. CSV) bez konieczności wykonywania wielu instrukcji INSERT. Kluczowe jest to, że po nazwie tabeli można podać listę kolumn w nawiasie, co umożliwia mapowanie pól z pliku na kolumny tabeli w określonej kolejności.
Dlatego zapis LOAD DATA INFILE 'file.csv' INTO TABLE Klienci (Imię, Nazwisko, Email, Id); realizuje cel zadania: nawet jeśli w tabeli kolejność jest (Id, Imię, Nazwisko, Email), to import może iść według kolejności występującej w pliku, o ile lista kolumn odpowiada kolejności pól w CSV.
Pozostałe propozycje są błędne z typowych powodów:
- IMPORT INTO ... FROM – taka składnia nie jest poleceniem SQL MySQL/MariaDB do importu pliku CSV.
- COPY ... FROM – polecenie COPY jest charakterystyczne dla PostgreSQL, a nie dla MySQL/MariaDB, więc w tym kontekście nie zadziała.
- SELECT * FROM 'file.csv' INTO ... – SELECT operuje na tabelach/widokach, a nie na plikach CSV traktowanych jak tabela; taki zapis nie stanowi poprawnego importu.
W praktyce przy imporcie CSV trzeba jeszcze pamiętać o parametrach formatu (separator pól, znak cudzysłowu, zakończenia linii, ewentualny nagłówek) oraz o kwestiach bezpieczeństwa: serwer bazy musi mieć dostęp do pliku, a niektóre instalacje ograniczają import ustawieniami typu secure_file_priv lub opcją LOCAL.