У меня есть таблица с простым первичным ключом, помеченным как auto_increment.
(Использование MySQL 5.0.77) Я выполняю повторные операции LOAD DATA. Мне нужно перезаписать все данные с полным контролем над значением моего первичного ключа.
ЗАГРУЗИТЬ ДАННЫЙ ЛОКАЛЬНЫЙ ИНФИЛЬ "TopicInfile.dat" В ТАБЛИЦУ ЛИНИЙ ТЕМ, ПРЕКРАЩЕННЫХ "КОНЕЦ ЭТОЙ ЗАПИСИ";
Файл .dat содержит идентификатор. Это не NULL. И все же, когда я загружаю эти данные, они ведут себя так, как будто они имеют значение NULL, и вместо идентификатора, который я указал, присваивают идентификатор автоинкремента.
Единственное, что необычно в этом файле .dat, это то, что он содержит много данных. Файл .dat имеет следующую структуру:
1 2008-06-27 12:00:00 Type-Safe Enumerations Énumérations 5
...a lot of data here...
\N 2002-10-01 12:00:00 END-OF-THIS-RECORD
2 2008-06-27 12:00:00 Class for constants Classe pour constantes 1
...a lot of data here...
\N 2002-10-01 12:00:00 END-OF-THIS-RECORD
и т. Д.
Структура таблицы:
CREATE TABLE `Topic` (
`Id` smallint(5) unsigned NOT NULL auto_increment,
`LastEdit` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`TitleEnglish` varchar(75) NOT NULL default '',
`TitleFrench` varchar(75) default NULL,
`ChapterId` smallint(6) NOT NULL default '0',
`BodyEnglish` text NOT NULL,
`BodyFrench` text,
`CreationDate` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=251 DEFAULT CHARSET=utf8 |
У меня есть другие таблицы, с которыми поведение в порядке - операция LOAD DATA всегда принимает мое значение id, кроме приведенной выше таблицы.
Любая помощь приветствуется.