日前在项目中遇到一个问题,就是在对一个表进行数据保存的时候出现错误,“Failed to read auto-increment value from storage engine”。在对表的结构进行仔细的检查之后发现表的auto_increment值是一个非常大的值(18446744073709551615,是mysql中中bigint unsign的值)。于是我手动设置其值为1( ALTER TABLE target_table AUTO_INCREMENT =1 )。但是仍然不起作用,值没有改变。
在网上搜寻了很多资料,比较一致的说法是说mysql的一个bug,需要对数据库进行升级。我为了省麻烦,没有升级我的mysql。于是想找到其他的方法。我使用mysql的控制台是phpmyadmin,无意中发现有几个操作可选,像优化数据表和对表进行flush操作。果真起了作用。
具体操作是:
1.选择目标表,点击Operations,找到下面的Table maintenance列表。这里提供了几个数据表的修复选项。
2.点击 Optimize Table,之后会执行sql语句: OPTIMIZE TABLE target_table.
3.之后再回到Operations。找到Flush the table ("FLUSH")。之后会执行sql语句:
FLUSH TABLE target_table。
至此可以将AUTO_INCREMENT设置到一个不是很大的可以接收的值。
项目中使用JPA,数据库是自动创建的,至于为什么在创建表之后AUTO_INCREMENT的值会被设置为一个最大值,到现在还没有弄清楚。不知道是数据库自身的问题还是程序中出现了错误。
只是做个记录,方便日后查询。如果有人遇到类似的问题,希望可以交流下。
================================================================
在发布这个文章之后,本人还是没有找出具体的原因出来,索性将数据库升级试下,原来的版本是5.1.28, 升级数据库之后的版本是5.1.43.再次rebuilt数据库,发现问题没有了。果真是mysql数据库的一个bug啊。
分享到:
相关推荐
在进行MySQL数据库操作时,可能会遇到“Failed to read auto-increment value from storage engine”这样的错误提示。此错误通常发生在尝试向设置了自动增长(AUTO_INCREMENT)属性的字段插入数据时。 #### 二、...
**mongoose-auto-increment** 是一个前端开源库,专为Mongoose设计,用于在数据库操作中实现自增字段的功能。Mongoose是Node.js中流行的Object Data Modeling (ODM) 库,它提供了对MongoDB数据库的强大支持。这个...
主键自增长(AUTO_INCREMENT)
mongoose_auto_increment 创建一个Counter用来记录所有Collections增长数,以Mongoose plugin的方式与对应的Scheme相关联,以此实现Mongoose自动增长列
### MySQL AUTO_INCREMENT 主键详解 在数据库设计与应用中,主键是确保数据表每一行记录唯一性的关键机制之一。而`AUTO_INCREMENT`属性则是在MySQL数据库系统中为某些整数类型的主键自动分配唯一值的功能。下面我们...
在MySQL数据库中,`auto_increment` 是一个非常重要的特性,它允许系统自动为新插入的行生成唯一的标识符,通常用于主键字段。这个特性在处理大量数据时尤其有用,因为它消除了手动设置唯一ID的需求。下面我们将深入...
猫鼬自动递增 Mongoose插件,用于自动递增编号ID。 安装 npm install --save mongoose-autoincrement 用法 var mongoose = require ( 'mongoose' ) ; var autoincrement = require ( 'mongoose-autoincrement' ) ;...
在本压缩包文件“Laravel开发-increment-decrement .zip”中,可能包含了一些关于如何在Laravel项目中使用这两个方法的示例、代码片段或者教程。 1. **increment() 方法** - `increment()` 方法用于将指定列的值...
如何使用如果您在foobar/baz目录中具有以下build-number.json文件: {"buildNumber":3}.github/workflows目录中的increment.yaml .github/workflows YAML文件的.github/workflows如下: name : Increment value test...
npx release-it --increment=minor ``` **社区与开源:** 作为开源项目,`release-it` 在GitHub上维护,开发者可以自由查看源代码、提交问题、提出改进或贡献代码。开源社区的支持使得`release-it` 不断发展和完善...
Id int64 `orm:"auto"` Name string `orm:"size(100)"` } ``` 在此例子中,`Id`字段将自动递增,每次插入新的`MyModel`实例时,ORM会自动处理ID的生成。 为了进一步了解`increment.go`文件的具体实现,你需要...
在Laravel框架中,`increment()` 和 `decrement()` 是两个非常实用的方法,它们用于方便地更新数据库中记录的数值字段。这两个方法主要用于处理计数器或者评分等需要增减的场景,使得开发者无需编写复杂的SQL语句就...
魔法增量 字符串的递增和递减。 安装 在浏览器中: < script src =" magic-increment.js " > </ script > ... script src =" magic-increment.min.js ... @param {string}里value要增量。 @return { strin
**vim-visual-increment 插件详解** 在程序员和文本编辑者的世界里,Vim 是一个备受推崇的文本编辑器,以其高效的操作和强大的自定义性而闻名。在这个环境中,提高生产力的一个关键因素就是快捷键的熟练运用。`vim-...
标题 "Shear-strain-increment-.zip_shear_slope stability_安全系数_应变增量_边坡" 提到的核心概念是剪应变增量、边坡稳定性和安全系数的计算。描述 "剪应变增量方法在边坡安全系数计算中的应用" 指出,这种方法被...
NX二次开发UF_ASSEM_set_step_increment 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的...
NX二次开发UF_ASSEM_ask_step_increment 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的...
print("AUTO_INCREMENT value has been updated to 2.") except Error as e: print("Error while updating AUTO_INCREMENT value", e) ``` 通过以上步骤,我们可以在Python脚本中控制并修改MySQL表的AUTO_...
POP - Pop Value From Stack PUSH - Push Value Onto Stack RET - Return From Subroutine RETI - Return From Interrupt RL - Rotate Accumulator Left RLC - Rotate Accumulator Left Through Carry RR - Rotate ...