首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OPTIMZE表之后自动增加值?

问如何在OPTIMZE表之后自动增加值?
EN

Stack Overflow用户
提问于 2011-11-02 12:58:14
回答 1查看 1.9K关注 0票数 1

我有一个InnoDB表,我经常在其中插入和删除行。

我注意到,在对最后几行执行delete语句并运行优化表后,自动增量将降回max(id)+1。

考虑以下事件的顺序

表:请求

代码语言:javascript
复制
Auto Increment is: 150, INSERT ROW (id 150)
Auto Increment is: 151, INSERT ROW (id 151)
Auto Increment is: 152, INSERT ROW (id 152)
Auto Increment is: 154

DELETE from requests where id in (151,152)

OPTIMIZE TABLE requests

Auto increment is: 151.

我想找到一种避免这种情况的方法。

任何帮助都是非常感谢的。

编辑:我刚刚尝试过,当我重新启动mysql服务而不是优化表时也会发生同样的事情。

EN

回答 1

Stack Overflow用户

发布于 2011-11-02 15:03:08

看来MySQL已经在修复这个问题了-- http://bugs.mysql.com/bug.php?id=18274。

但同时,在优化表完成后,您可以手动将自动增量值设置为任何应该设置的值。

顺便问一下,为什么要将自动增量值保持在优化之前的值,有什么具体的原因吗?因为我不认为自动增量重置应该会破坏任何东西,除非你没有外键的删除级联。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7980700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档