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

时间:2010-11-20 13:30:56

标签: mysql auto-increment

我正在创建一个包含4个重要ID

的Web应用程序

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

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

示例:

orderid = 10000000所以会产生10m到19999999之间的数字

palletid = 20000000 20m - 29999999

productid = 30000000 30m - 39999999

当这些id达到极限时,他们会开始重复使用现有的旧数字吗?

3 个答案:

答案 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
)

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