用UUID生成的前6位作为主键,也能保证不重复吗。话说这个UUID为什么保证不会重复?因为概率低吗?

打算让报表自动生成6位随机数,想采用UUID()函数,但是不知道如果只取前6位的话会不会有重复的可能。
因为我一直不明白UUID()可以作为主键的依据,是因为重复的概率太低了吗?
如果不采用UUID(),如何生成6位随机数作为主键

FineReport 吴黎明 发布于 2019-3-6 15:16
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
黄源Lv6中级互助
发布于2019-3-6 15:20(编辑于 2019-3-6 15:27)

取六位不如用自增长,随机数也可能重复,数据库主键自增长

sqlserver数据库 (identity) oracle数据库( sequence)

UUID由以下几部分的组合:

(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

(2)时钟序列。

(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得


最佳回答
1
孤陌Lv6资深互助
发布于2019-3-6 15:23

不可以 6位肯定会有可能重复的

  • 3关注人数
  • 3989浏览人数
  • 最后回答于:2019-3-6 15:27
    请选择关闭问题的原因
    确定 取消
    返回顶部