mysql ЗАГРУЖАЮТ ДАННЫЕ INFILE автоинкрементным первичным ключом

Я пытаюсь загрузить файл данных в mysql таблицу с помощью "ДАННЫЕ ЗАГРУЗКИ ЛОКАЛЬНОЕ 'имя файла' INFILE В ТАБЛИЦУ 'имя таблицы'".

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

def create_table():
            cursor.execute ("""
                    CREATE TABLE variants
                    (
                    id integer(10) auto_increment primary key,
                    study_no CHAR(40),
                    other fields.....


                    )
                    """)

вот мой запрос ЗАГРУЗКИ

query1= "LOAD DATA LOCAL INFILE '"+currentFile+"' INTO TABLE variants FIELDS TERMINATED BY '\\t' LINES TERMINATED BY '\\n'"

какие-либо идеи?

Сводка: составьте таблицу с дополнительным идентификационным полем, которое было бы, автоматические инкрементные данные загрузки (20 столбцов) в таблицу 21 поля, пропускающего идентификационное поле, позволяют идентификационному полю автоматически заполнить с автоматическим инкрементным индексом.

14
задан Brian Tompsett - 汤莱恩 1 December 2015 в 23:23
поделиться

2 ответа

Укажите список столбцов:

По умолчанию, когда в конце оператора LOAD DATA INFILE не указан список столбцов, ожидается, что строки ввода будут содержать поле для каждого столбца таблицы. Если вы хотите загрузить только некоторые столбцы таблицы, укажите список столбцов:

LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

20
ответ дан 1 December 2019 в 12:12
поделиться

список столбцов должен находиться в самом конце, а столбец id должен иметь set = null для автоматического увеличения - , к сожалению, документация mysql очень расплывчата. они просто говорят col1, col2, но они находятся в исходном файле или в таблице dest. Эта страница очень помогла наглядными примерами.

http://www.experts-exchange.com/articles/Database/MySQL/Load-Delimited-Data-into-MySQL-Server.html

0
ответ дан 1 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: