是否可以在mysql中设置自动增量的起点和最大值?

是否可以在mysql中设置自动增量的起点和最大值?,mysql,auto-increment,Mysql,Auto Increment,我正在创建一个包含4个重要id的web应用程序 并加快识别哪个自动递增id用于什么 我希望对autp递增的数字设置限制 例如: orderid=10000000,因此将生成一个介于10m到19999999之间的数字 palletid=20000000 20m-2999999 productid=30000000 30m-3999999 当这些id达到极限时,它们会开始重用现有的旧号码吗?自动增量列不是这样工作的 当然,您可能可以设置起点,但是最大值和关于重用旧号码的部分,对不起,没有内置到系统中

我正在创建一个包含4个重要id的web应用程序

并加快识别哪个自动递增id用于什么

我希望对autp递增的数字设置限制

例如:

orderid=10000000,因此将生成一个介于10m到19999999之间的数字

palletid=20000000 20m-2999999

productid=30000000 30m-3999999


当这些id达到极限时,它们会开始重用现有的旧号码吗?

自动增量列不是这样工作的

当然,您可能可以设置起点,但是最大值和关于重用旧号码的部分,对不起,没有内置到系统中

你为什么需要这个

普遍的共识是,如果使用自动增量列,则实际上并不关心值本身。当然,你关心它的独特性,但你不关心它的实际价值是什么

既然你在乎,为什么你在乎?为什么需要它来重复使用旧号码


你说你想用它来识别系统中的各种项目。你是说,对用户来说?为什么不用前缀呢?O123用于订单,C123用于客户,P123用于产品等。一种方法是定义数据类型。例如,tiny int的最大值为127。如果您试图将自己的增量限制为100,请将起始值设置为27


没有,但请尝试以下方法:

INSERT INTO table VALUES(id)
(
 Case when
 (
  SELECT id FROM table
  LIMIT COUNT(SELECT * FROM table)-1, 1) >= maximumhere
 )
then minimumhere
else MAX(SELECT id FROM table)+1
)

这只是理论上的,当然,玩吧…

我考虑过使用前缀,但我希望通过让sql为我处理它来简化这一点。系统中还有很多id,但这3个id将用于识别托盘、订单和产品。