我的表中有一个要自动递增的主键列。但是,当我从表中删除具有最高主键id的行时(假设是11)。然后,下一次我进行插入时,它将关键字插入为12而不是11 (尽管在逻辑上它可以使用11,因为没有与关键字11相关联的条目)。我怎样才能做到这一点呢?
发布于 2011-03-19 00:32:57
你真的想要这个吗?一个自动增量列将保证一个唯一的数字,这就足够了。我猜你可以更新下一个自动增量值(我将不得不查看它是如何工作的),但我认为你不应该这样做。
如果您需要控制列中的数字,则应手动执行此操作。
但是,您可以像这样更改自动增量数字:
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技巧的情况下解决这个问题:)
发布于 2011-03-19 00:34:46
Mysql没有这个开箱即用的特性,您需要在您的应用程序中对其进行编码。你会遇到的一个问题是,如果两个事务想要获取和id,其中一个事务将得到一个重复的id错误。当然,最好避免这种情况。
所有的数据库引擎都缺少这个“特性”,因为它不利于并发。
https://stackoverflow.com/questions/5355002
复制相似问题