# 1467 - Не удалось прочитать значение автоинкремента из механизма хранения

Я пытался создать новый объект, и появилась эта ошибка:

java.sql.sqlexception не удалось прочитать значение автоинкремента из механизма хранения

Итак, я пошел к phpMyAdmin, чтобы создать там объект, и обнаружилось то же самое:

MySQL сказал: Документация

1467 - Не удалось прочитать значение автоинкремента из механизма хранения.

затем я щелкнул по редактированию, и он оказался там:

INSERT INTO `reservation`.`room` (`idroom`, `number`, `floor`, `description`, `characteristics`, `cost`, `status`, `type`) VALUES (NULL, '114', '3', 'ss', 'ss', '550.00', 'Available', 'ss')

(Предполагается, что idroom будет увеличиваться автоматически.)

Я уже читал другие сообщения, в которых говорится, что я должен написать это:

ALTER TABLE `table_name`  AUTO_INCREMENT = 1

но я понятия не имею, куда это поставить. Есть ли лучшее решение?


person user3764862    schedule 28.11.2014    source источник


Ответы (2)


Ваше INSERT утверждение неверно. Поскольку idroom равно AUTO_INCREMENT; вы не должны включать его в список столбцов в вашей команде вставки. Ваш оператор вставки должен выглядеть, как показано ниже. Обратите внимание, что я удалил idroom столбец из списка вставленных столбцов и не передал NULL в список значений.

INSERT INTO `reservation`.`room` (`number`, `floor`, `description`, 
`characteristics`, `cost`, `status`, `type`) 
VALUES ('114', '3', 'ss', 'ss', '550.00', 'Available', 'ss')
person Rahul    schedule 28.11.2014

Я тоже боролся с этой проблемой, искал, но ничего не нашел. Тогда у меня сработало следующее: Я думаю, это может сработать для вашей проблемы. Спасибо.

1st:
-delete (before backup)->all data from your database.
-try to run your Java program again, or any program you want. 

В случае неудачи перейдите ко 2-му.

2nd: 
- backup all data from your table
- delete table completely 
- create table again; example shown below:  

CREATE TABLE `users` (
    `id` int(6) NOT NULL,
    `f_name` varchar(30) NOT NULL,
    `l_name` varchar(30) NOT NULL,
    `address` varchar(50) DEFAULT NULL,
    `phone_num` varchar(12) DEFAULT NULL,
    `email` varchar(30) DEFAULT NULL
);
ALTER TABLE `users`
ADD PRIMARY KEY (`id`);
AUTO_INCREMENT for table `users`
ALTER TABLE `users`
MODIFY `id` int(6) NOT NULL AUTO_INCREMENT;
person Saeed    schedule 04.01.2017