首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql auto_increment继续使用最低值

Mysql auto_increment继续使用最低值
EN

Stack Overflow用户
提问于 2011-06-05 16:23:18
回答 5查看 1.1K关注 0票数 1

我的问题是:我有一个包含auto_increment列的表。当我插入一些值时,一切都是正确的。插入第一行: ID 1插入第二行: ID 2

现在我想在ID为10的位置插入一行。

我的问题是,在此之后,只有在ID 10之后插入的行(这是正常行为)。

但我想让数据库先填满ID3-9,然后再做这个。

有什么建议吗?

编辑:

为了澄清:这是一个网址缩短,我想为自己建立。我将id转换成一个单词(a-zA-z0-9)进行搜索,为了保存在数据库中,我将它转换成一个数字,即表的ID。

现在的问题是:我缩短了第一个链接(没有名称)的-> ID为1,自动将名称1转换为a-zA-Z0-9,这是一个

接下来,同样的事情发生了,-> ID是2,名称是b,它是2转换的。

接下来有趣的是,有人想要将链接命名为test -> ID is 4597691,这是转换后的test

现在,如果有人添加了另一个没有名称的链接,则-> ID为4597692 which将为tesu,因为数字已转换。

我希望新的行会自动插入到最后一个间隙(这里是3)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-05 18:18:10

您可以使用另一个整型列来存储URL ID。

然后,您的流程可能如下所示:

  • 如果为链接生成了默认名称,则只需插入新行,使用自动增量值填充URL列,然后将结果转换为相应的名称。
  • 如果为URL值指定了自定义名称,则在插入行后,URL列将填充通过将所选名称转换为整数而获得的数字。

诸若此类。在查找整数ID时,您将使用URL ID列,而不是表自动增量列。

如果我遗漏了什么,请告诉我。

票数 0
EN

Stack Overflow用户

发布于 2011-06-05 16:26:31

您可以执行6次虚拟插入,并在以后需要时删除/更新它们。自动递增的概念旨在限制应用程序或用户对数字的控制,以确保输入到表中的每条记录的值都是唯一的。

票数 0
EN

Stack Overflow用户

发布于 2011-06-05 16:26:46

代码语言:javascript
复制
ALTER TABLE MY_TABLE AUTO_INCREMENT = 3;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6241753

复制
相关文章

相似问题

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