我的表中有一个主键列要自动递增。但是,当我从具有最高主键ID的表中删除一行时(假设为11)。然后,当我下次插入时,它将键插入12而不是11(尽管逻辑上它可以使用11,因为没有与键11相关联的条目)。我怎样才能做到这一点?
答案 0 :(得分:6)
如果您需要控制列中的数字,则应手动执行此操作。
然而,您可以像这样更改自动增量数字:
ALTER TABLE tbl AUTO_INCREMENT = 100;
(来自:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)
另一个评论:如果你的数字是1到10,而你删除5,你就不能轻易做到这一点。你很难做出下一个auto_increment 5因为6已经存在了。 所以,再次,当你可以为你的例子做一些肮脏的事情时,在真实的环境中做这件事真的很难。也许开始一个新的问题描述你的情况,并征求建议如何在没有auto_increment技巧的情况下解决这个问题:)
答案 1 :(得分:0)
Mysql没有开箱即用的功能,您需要在应用程序中对其进行编码。您将遇到的一个问题是,如果2个事务想要获取和id,则其中一个将获得重复的id错误。当然,最好避免这种情况。
所有数据库引擎都缺少这个“功能”,因为它不利于并发。