首先明确答复你:超过之后会从0开始编码。下面以表示范围更小的单字节类型为例子说明,如果是有符号数据类型,首先从0开始编码,到127的时候就是最大,下一个数将是-128,随后-127、-126,直到0以后,又会从1开始编码。如果是无符号类型,那么会从0开始到256结束,然后又从0开始编号。
上面可能有点糊涂,但是仔细看的话,我相信你能明白。
其次我告诉你:你应该选择足够大的数据类型,为了防止数据重复,你可以让你的程序在未来的十年都不会因为这样的问题成为缺陷,下面是MYSQL各数据类型表示的范围:
类型
字节
带符号的范围
无符号的范围
TINYINT
1
-128~127
0~ 255
SMALLINT
2
-32768~ 32767
0~ 65535
MEDIUMINT
3
-8388608~8388607
0~ 16777215
INT
4
-2147483648~2147483647
0~ 4294967295
BIGINT
8
-9223372036854775808~ 9223372036854775807
0~ 18446744073709551615
不直到你的业务有多少,BIGINT类型可能10年不会存满吧。
最后说一句,不要试图去想办法让ID值重复使用,尽管有许多办法可以实现,但那几乎是得不偿失的。
查询id值在8附近的4条记录:
SELECT ABS(id-8), FROM article ORDER BY 1 LIMIT 4
原理,使用id与指定值之差的绝对值作为排序项目,能按照接近程度查询数据,使用LIMIT限制结果数量。
以上就是关于关于mysql中自增加的ID问题全部的内容,包括:关于mysql中自增加的ID问题、mysql 数据库根据id 查找其他相邻的数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)