Я не смог воспроизвести вашу ошибку. У меня это сработало, тестирование на MySQL 5.6.37:
mysql> LOAD DATA LOCAL INFILE 'sample.csv' INTO TABLE persons
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n';
Query OK, 2 rows affected (0.02 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from persons;
+----+-----------+----------+
| id | firstname | lastname |
+----+-----------+----------+
| 1 | john | doe |
| 2 | jane | doe |
+----+-----------+----------+
В моем примере файла данных использовался \N
для первого столбца.
Я также попытался установить для первого столбца какое-то не-NULL значение, а затем переопределить это в моем НАГРУЗКЕ ДАННЫХ INFILE. Это может работать для вас, не требуя от вас вводить имя каждого столбца.
mysql> LOAD DATA LOCAL INFILE 'sample.csv' INTO TABLE persons
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'
SET id = NULL;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from persons;
+----+-----------+----------+
| id | firstname | lastname |
+----+-----------+----------+
| 1 | john | doe |
| 2 | jane | doe |
| 4 | john | doe |
| 5 | jane | doe |
+----+-----------+----------+