У меня есть некоторые объемные данные в текстовом файле, который я должен импортировать в таблицу MySQL. Таблица состоит из двух полей..
Текстовый файл является большим количеством имен с одним именем на строку...
(пример)
John Doe
Alex Smith
Bob Denver
Я знаю, как импортировать текстовый файл через phpMyAdmin однако, насколько я понимаю, я должен импортировать данные, которые имеют то же количество полей как целевая таблица. Существует ли способ импортировать данные из моего текстового файла в одно поле и иметь автоинкремент поля ID автоматически?
Заранее спасибо за любую справку.
Неправильно при импорте с 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 до? и не иметь конфликта со столбцами входящего текста.