在mysql中插入数据时出现此错误:
错误号:1467 无法从存储引擎读取自增值
我现在不知道如何解决这个问题,请任何帮助将不胜感激。
经过一番搜索,我找到了答案,它解决了我的问题。
运行这个 sql 查询它将解决问题
ALTER TABLE `YOUR_TABLE` AUTO_INCREMENT =1
我也收到了这条消息。我的问题是我的表没有按索引排序。尝试使用以下内容:
ALTER TABLE `YOUR-TABLE` ORDER BY `index` ;
对此行为的一种可能解释是自动增量值已达到数据类型的最大值,数据库引擎无法将其加一。
我建议你检查当前值。一种相对简单的方法是运行 a SHOW CREATE TABLE mytable;
,表定义将显示当前值。(您也可以查询 information_schema.tables 视图,以获取相同的信息。)
As spencer7593 says, the autoincrement value has reached the maximum value for the datatype
I just came to the problem.
use the command SHOW CREATE TABLE tablename;, I get
table name {
`id` int(11) NOT NULL AUTO_INCREMENT,
......
}ENGINE=InnoDB AUTO_INCREMENT=100000000000 DEFAULT CHARSET=utf8
You will see the length of 100000000000 is 12, beyond the limit 11.
**对我来说,导致错误的是自动增量 ID(列) **我解决它的方法是删除(删除)ID 列并再次添加它。
在将 ID 列更改为 id 并导出我的数据库之后,我遇到了同样的问题,所以我只是将列切换回 ID,然后再次切换回 id,之后一切正常。在 laravel 中使用 elequent orm,它需要列 ID,而我有列 ID,这就是我首先更改它的原因
正确检查您的数据库结构。我也遇到过这个问题,但是我发现数据库结构有一些错误。修复结构后,问题得到解决。
此错误的另一种可能性是您已达到 ID 字段中的最大值(通常是 INT)。当我们的 ID 值接近 4294967295 时,我们遇到了这个错误。为了解决这个问题,我们最终不得不从表中删除 ID。此答案中提到了各种 INT 字段:https ://stackoverflow.com/a/5634147/4573630
ps aux | grep mysql
sudo kill (your pid)
/etc/init.d/mysql restart