首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中的自动增量

MySQL中的自动增量
EN

Stack Overflow用户
提问于 2011-03-19 00:31:14
回答 2查看 678关注 0票数 2

我的表中有一个要自动递增的主键列。但是,当我从表中删除具有最高主键id的行时(假设是11)。然后,下一次我进行插入时,它将关键字插入为12而不是11 (尽管在逻辑上它可以使用11,因为没有与关键字11相关联的条目)。我怎样才能做到这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-19 00:32:57

你真的想要这个吗?一个自动增量列将保证一个唯一的数字,这就足够了。我猜你可以更新下一个自动增量值(我将不得不查看它是如何工作的),但我认为你不应该这样做。

如果您需要控制列中的数字,则应手动执行此操作。

但是,您可以像这样更改自动增量数字:

代码语言:javascript
复制
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技巧的情况下解决这个问题:)

票数 6
EN

Stack Overflow用户

发布于 2011-03-19 00:34:46

Mysql没有这个开箱即用的特性,您需要在您的应用程序中对其进行编码。你会遇到的一个问题是,如果两个事务想要获取和id,其中一个事务将得到一个重复的id错误。当然,最好避免这种情况。

所有的数据库引擎都缺少这个“特性”,因为它不利于并发。

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

https://stackoverflow.com/questions/5355002

复制
相关文章

相似问题

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