我创建一个包含Web应用程序4个重要的ID是否可以为mysql中的自动增量设置起点和最大值?
,并加快识别其中的自动递增的id是什么
我希望能设置在autp递增数量的限制。
例如:
订单ID =千万所以会产生若干10米之间 - 19999999
palletid = 2000000020米 - 29999999
的productid = 3000000030米 - 39999999
并且当这些ID的达到极限时,他们是否会开始重复使用现有的旧号码?
我创建一个包含Web应用程序4个重要的ID是否可以为mysql中的自动增量设置起点和最大值?
,并加快识别其中的自动递增的id是什么
我希望能设置在autp递增数量的限制。
例如:
订单ID =千万所以会产生若干10米之间 - 19999999
palletid = 2000000020米 - 29999999
的productid = 3000000030米 - 39999999
并且当这些ID的达到极限时,他们是否会开始重复使用现有的旧号码?
这不是自动增量列的工作方式。
当然你可以设置起点,但最大值和关于重复使用旧数字的部分,对不起,没有内置到系统中。
为什么你需要那个?
一般的共识是,如果你使用自动增量列,你并不真正关心值本身。当然,你关心它是独一无二的,但你不在乎什么是实际的价值。
因此,既然你在乎,你为什么在乎呢?为什么你需要它重用旧数字?
你说你想用它来识别系统中的各个项目。你的意思是,对于用户?为什么不使用前缀?订单的O123,客户的C123,产品的P123等。
我曾考虑过使用前缀的,但我希望通过让sql来处理它来简化这个。 – 2010-11-20 13:42:09
系统中有更多的id,但这3个将用于识别托盘的订单和产品。 – 2010-11-20 13:43:32
一种方法是定义数据类型。 。 。例如tiny int的最大值是127。 。如果你试图给自己限制在100个incrementations,你的启动值设置为27
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
好主意谢谢。 – 2010-11-20 13:44:02
没有,但尝试这样的事:
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
)
这仅仅是理论上的,当然,玩与它...
请仔细阅读播种 – CarneyCode 2010-11-20 13:35:59