Подтвердить что ты не робот

MySQL LOAD DATA INFILE - загрузка файла без первичного ключа

Я пытался загрузить файл данных в таблицу mysql, используя имя файла LOAD DATA LOCAL INFILE 'INTO TABLE' tablename '.

Проблема заключается в том, что файл исходных данных содержит данные каждого поля, но первичный ключ отсутствует (столбец "id" ). Я должен добавить уникальный идентификатор в каждую строку исходного файла данных, иначе импорт не пройдет.

Есть ли возможность игнорировать первичный ключ в исходном файле или автоматически увеличивать его во время импорта?

Он уже настроен на первичный ключ с автоматическим приращением.

mysql> desc tablename;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id                 | int(11)      | NO   | PRI | NULL    | auto_increment | 
...
4b9b3361

Ответ 1

Почему бы не загрузиться в таблицу с первичным ключом автоматического увеличения?

create table MyTable (
    id integer auto_increment primary key,
    ...
)

Вы можете указать столбцы, которые будут импортированы после имени таблицы:

LOAD DATA INFILE 'filename' INTO TABLE tablename (col1,col2,...);

Если вы не укажете столбец id, MySQL не будет читать его из файла.