我有一个InnoDB表,我经常在其中插入和删除行。
我注意到,在对最后几行执行delete语句并运行优化表后,自动增量将降回max(id)+1。
考虑以下事件的顺序
表:请求
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服务而不是优化表时也会发生同样的事情。
发布于 2011-11-02 15:03:08
看来MySQL已经在修复这个问题了-- http://bugs.mysql.com/bug.php?id=18274。
但同时,在优化表完成后,您可以手动将自动增量值设置为任何应该设置的值。
顺便问一下,为什么要将自动增量值保持在优化之前的值,有什么具体的原因吗?因为我不认为自动增量重置应该会破坏任何东西,除非你没有外键的删除级联。
https://stackoverflow.com/questions/7980700
复制相似问题