我正在研究生成唯一ID的函数 - 我的具体要求是唯一ID只需要8位数。
无论如何,我刚刚意识到我们可以设置ID自动增量字段从任何数字开始。所以假设我从11111111开始 - 我是否认为所有新记录都会从这个值增加?如果是这样,那么我有我唯一的8位ID,不需要使用此功能。
如果记录被删除,那么新记录会重新使用该删除的ID吗?
答案 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”)