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