我正在研究生成唯一ID的函数-我的特定要求是唯一ID只需要8位数字。
无论如何,我刚刚意识到我们可以设置一个ID自动递增字段来从任何数字开始。那么假设我从11111111开始-我认为所有的新记录都会从这个值开始递增,对吗?如果是这样,那么我有我唯一的8位ID,不需要为此使用函数。
另外,如果删除了一条记录,那么新记录是否会重用该删除的ID?
发布于 2011-01-19 22:19:11
1)自动增量-值不会被重用
2)可以,通过将自动递增计数器设置为8位数字(例如10000000),您可以实现这一点!(表选项"AUTO_INCREMENT = N")
发布于 2011-01-19 22:18:17
这是正确的。如果自动编号列从11111111开始,则下一行的编号将为11111112。
删除记录时,不会重复使用其自动编号。
编辑:关于最大值的,它取决于您选择的列类型。从MySQL文档中:
对于AUTO_INCREMENT列,
使用足够大的整数数据类型来保存所需的最大序列值。当该列达到数据类型的上限时,下一次生成序列号的尝试将失败。例如,如果使用TINYINT,则允许的最大序列号为127。对于TINYINT UNSIGNED,最大值为255。
你可以使用一个整数,然后到4294967295,或者使用BIGINT,然后到18446744073709551615。请参阅http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
https://stackoverflow.com/questions/4736241
复制相似问题