Как импортировать текстовый файл к таблице с первичным ключом как автоинкремент

У меня есть некоторые объемные данные в текстовом файле, который я должен импортировать в таблицу MySQL. Таблица состоит из двух полей..

  1. Идентификатор (целое число с автоинкрементом)
  2. Имя (varchar)

Текстовый файл является большим количеством имен с одним именем на строку...

(пример)

John Doe
Alex Smith
Bob Denver

Я знаю, как импортировать текстовый файл через phpMyAdmin однако, насколько я понимаю, я должен импортировать данные, которые имеют то же количество полей как целевая таблица. Существует ли способ импортировать данные из моего текстового файла в одно поле и иметь автоинкремент поля ID автоматически?

Заранее спасибо за любую справку.

14
задан webworm 17 March 2010 в 15:37
поделиться

1 ответ

Неправильно при импорте с LOADTABLE INFILE, просто создайте столбец с автоинкрементом как ПОСЛЕДНИЙ столбец / поле ... В качестве его синтаксического анализа, если ваша таблица определен с 30 столбцами, но текстовый файл имеет только 1 (или что-то меньше), он сначала импортирует ведущие столбцы в прямой последовательности, поэтому убедитесь, что ваш разделитель с помощью ... правильный между полями (для любого будущего импорта). Опять же, установите автоматическое увеличение ПОСЛЕ того количества столбцов, которое, как вы знаете, импортируется.

create table YourMySQLTable
(  FullName varchar(30) not null ,
   SomeOtherFlds varchar(20) not null,
   IDKey int not null AUTO_INCREMENT,
   Primary KEY (IDKey)
);

Обратите внимание, что IDKey автоматически увеличивается в последнем поле таблицы ... независимо от вашего текстового файла потока INPUT, который может иметь меньше столбцов, чем в действительности будет содержать ваша окончательная таблица.

Затем импортируйте данные через ...

LOAD DATA
    INFILE `C:\SomePath\WhereTextFileIs\ActualFile.txt`
    INTO TABLE YourMySQLTable
    COLUMNS TERMINATED BY `","`  
    LINES TERMINATED BY `\r\n` ;

Приведенный выше пример основан на списке, разделенном запятыми, с кавычками вокруг каждого поля, например «myfield1», «anotherField», «LastField». Кроме того, завершается cr / lf, в котором типичные текстовые файлы разделяются по строкам

. В примере вашего текстового файла, имеющего полное имя в виде единственного столбца, все данные будут загружены в "YourMySQLTable" в поле FullName. столбец. Поскольку IDKey находится в КОНЦЕ списка, он по-прежнему будет автоматически увеличивать присвоенные значения от 1 до? и не иметь конфликта со столбцами входящего текста.

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

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