MYSQL (Percona) Не удалось прочитать значение автоинкремента из механизма хранения
Я получаю сообщение об ошибке "Не удалось прочитать значение автоинкремента из механизма хранения" от MySQL (Percona) после попытки:
LOAD DATA LOCAL INFILE
Я пытался найти ответ на stackru и Google, но ответы не решили проблему / ошибку для моего случая.
Следующее показывает Auto_increment как 1:
show table status like 'my_table_name';
Установка значения автоинкремента на следующее значение или на 1 не решила его:
ALTER TABLE `my_table_name` AUTO_INCREMENT = 1;
Удаление столбца идентификатора с автоинкрементом и его повторное создание не решило проблему.
Уронить стол и воссоздать его не решило.
Удаление базы данных и ее воссоздание не решило проблему.
Уничтожение всех данных и перестройка среды разработки моего докера не решили эту проблему.
Проверка расширенной таблицы дала "ОК":
CHECK TABLE distributor_users EXTENDED;
И это единственное автоинкрементное значение в таблице.
Вот что я использую для создания таблицы:
CREATE TABLE `my_table_name` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`x0` varchar(191) DEFAULT NULL,
`x1` varchar(4) DEFAULT NULL,
`x2` varchar(191) DEFAULT NULL,
`x3` varchar(191) DEFAULT NULL,
`x4` varchar(191) DEFAULT NULL,
`x5` varchar(191) DEFAULT NULL,
`x6` DATE DEFAULT NULL,
`x7` int(10) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `x0` (`x0`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Что бы это могло быть? Любое руководство, чтобы начать смотреть очень приветствуется!
1 ответ
Я решил это сам, добавив к моему запросу:
SET id = NULL
Новый запрос теперь выглядит так:
LOAD DATA LOCAL INFILE '$csv_file_location' INTO TABLE $destination_table
FIELDS TERMINATED BY ','
ENCLOSED BY '\"'
IGNORE 1 LINES
(x0,x1,x2,x3,x4,x5,x6,x7)
SET id = NULL;
Хотя раньше мой запрос работал без него.
MySQL пытался поместить первый столбец в файле csv в первый столбец базы данных. Установка столбца, для которого auto_increment равно NULL, решила это.