2010-11-20 77 views
0

我创建一个包含Web应用程序4个重要的ID是否可以为mysql中的自动增量设置起点和最大值?

,并加快识别其中的自动递增的id是什么

我希望能设置在autp递增数量的限制。

例如:

订单ID =千万所以会产生若干10米之间 - 19999999

palletid = 2000000020米 - 29999999

的productid = 3000000030米 - 39999999

并且当这些ID的达到极限时,他们是否会开始重复使用现有的旧号码?

+0

请仔细阅读播种 – CarneyCode 2010-11-20 13:35:59

回答

1

这不是自动增量列的工作方式。

当然你可以设置起点,但最大值和关于重复使用旧数字的部分,对不起,没有内置到系统中。

为什么你需要那个?

一般的共识是,如果你使用自动增量列,你并不真正关心值本身。当然,你关心它是独一无二的,但你不在乎什么是实际的价值。

因此,既然你在乎,你为什么在乎呢?为什么你需要它重用旧数字?

你说你想用它来识别系统中的各个项目。你的意思是,对于用户?为什么不使用前缀?订单的O123,客户的C123,产品的P123等。

+0

我曾考虑过使用前缀的,但我希望通过让sql来处理它来简化这个。 – 2010-11-20 13:42:09

+0

系统中有更多的id,但这3个将用于识别托盘的订单和产品。 – 2010-11-20 13:43:32

0

没有,但尝试这样的事:

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 
) 

这仅仅是理论上的,当然,玩与它...

相关问题