我正在创建一个包含4个重要ID
的Web应用程序并加快识别哪个自动递增的id用于什么
我希望对autp递增的数字设置限制。
示例:
orderid = 10000000所以会产生10m到19999999之间的数字
palletid = 20000000 20m - 29999999
productid = 30000000 30m - 39999999
当这些id达到极限时,他们会开始重复使用现有的旧数字吗?
答案 0 :(得分:1)
这不是自动增量列的工作方式。
当然你可以设置起点,但是最大值和关于重用旧数字的部分,对不起,没有内置到系统中。
你为什么需要那个?
普遍的共识是,如果你使用自动增量列,你并不真正关心价值本身。当然,您关心它是独一无二的,但您并不关心实际值是什么。
所以,既然你在乎,为什么要关心?为什么需要它来重用旧数字呢?
您说您想用它来识别系统中的各种项目。你的意思是,对于用户?为什么不使用前缀? O123用于订单,C123用于客户,P123用于产品等
答案 1 :(得分:0)
一种方法是定义数据类型。 。 。例如,tiny int的最大值为127。 。如果您尝试将自己限制为100次递增,请将起始值设置为27。
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
答案 2 :(得分: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
)
这当然是理论上的,玩它......