13
回答
java程序生成永远不重复的编码!!!!?????
华为云实践训练营,热门技术免费实践!>>>   

现在在做excel数据向oracle中导入,数据量很大,几百万甚至几千万条,插入数据库的表后希望永远都不会重复,不让使用序列器,要求用java程序生成不重复的一串编码。具体编码的格式也没有什么要求,最好是字母和数字混合的吧!长度长点也没问题的。

希望大家有好的方法推荐一下!!!

注意了数据量很大,千万不要重复了!!!!!

举报
蜡笔小新_
发帖于4年前 13回/950阅
共有13个答案 最后回答: 4年前


用 时间 + 自增长ID(6位) , 然后转成 base62 即可

其实 UUID 就是 网卡mac(java中是ip地址) + 时间 + 随机数

如果你要分布式的话,可以加入一个 server id,或者用 UUID 中的网卡mac(java中ip地址) 也可。



思路很简单,世界上只有时间在一直变化。

每一刻的时间都不相同!


--- 共有 2 条评论 ---
氪金用timestamp,它的精度为毫秒级,然后用它作为前置项,然后加上以它为种子的32位随机数,这样在同一毫秒内,你可以放心不会重复了 4年前 回复
蜡笔小新_我这数据量很大,就怕在一个时间点上会有很多数据的插入 4年前 回复

uuid理论上是绝对不会重复的。请百度之。

--- 共有 6 条评论 ---
duty回复 @xmut : 没那么复杂啊,一行代码完事。 4年前 回复
xmut回复 @Breaking : 楼主没将什么集群之类的东西,就是一个很简单的数据库主键问题!!!简单的问题就不要搞复杂,这是很多码农的通病! 4年前 回复
duty回复 @回忆的沙漏 @xmut @ vietor : UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的. 反正在人类这个四维空间是不会重复的。。。 4年前 回复
vietor回复 @xmut : 你审视问题的角度不是"人类",而是“神"——每个人必须获得“神”的认可,呵呵。 4年前 回复
蜡笔小新_理论上??那么现实中呢。。。。超大的数据的话 几千万那种 4年前 回复
顶部