生成唯一ID

时间:2011-01-19 14:16:40

标签: php sql mysql

我正在研究生成唯一ID的函数 - 我的具体要求是唯一ID只需要8位数。

无论如何,我刚刚意识到我们可以设置ID自动增量字段从任何数字开始。所以假设我从11111111开始 - 我是否认为所有新记录都会从这个值增加?如果是这样,那么我有我唯一的8位ID,不需要使用此功能。

如果记录被删除,那么新记录会重新使用该删除的ID吗?

2 个答案:

答案 0 :(得分:6)

这是正确的。如果您的自动编号列从11111111开始,那么您的下一行将具有编号11111112。

删除记录时,其自动编号重复使用。

编辑:关于最大值,这取决于您选择的列类型。来自MySQL文档:

  

为AUTO_INCREMENT列使用足够大的整数数据类型来保存所需的最大序列值。当列达到数据类型的上限时,下一次生成序列号的尝试将失败。例如,如果使用TINYINT,则允许的最大序列号为127.对于TINYINT UNSIGNED,最大值为255.

您可以使用INT并最多使用4294967295或BIGINT,最多可达18446744073709551615.请参阅http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

答案 1 :(得分:4)

1)自动增量 - 值不会重复使用

2)是的,通过将自动增量计数器设置为8位数字(例如10000000),您可以实现此目的! (表格选项“AUTO_INCREMENT = N”)