我试图创建一个新对象并出现此错误:
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
但我不知道该把它放在哪里。有更好的解决方案吗?
答案 0 :(得分:0)
您的INSERT
声明错误。由于idroom
是AUTO_INCREMENT
;您不能将它包含在insert命令的列列表中。您的insert语句应如下所示。请注意,我已从插入列列表中删除了idroom
列,并且未在值列表中传递NULL
。
INSERT INTO `reservation`.`room` (`number`, `floor`, `description`,
`characteristics`, `cost`, `status`, `type`)
VALUES ('114', '3', 'ss', 'ss', '550.00', 'Available', 'ss')
答案 1 :(得分:0)
我也在努力解决这个问题并进行了搜索,并没有找到任何结果。然后以下为我工作;我想这可能对你的问题有用。 THX。
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;