【发布时间】:2014-09-10 05:47:08
【问题描述】:
在我的项目中,我需要生成大量(数千个)唯一随机数。到目前为止,我正在使用这个效率不高的解决方案:
public void codeFactory(int count) {
for (;count > 0; count --) {
while (true) {
long code = getRandomCode();
Long codeStored = em.select("c.code").from("codes c").where("c.code = ?", code)
.fetchSingle(Long.class);
if (codeStored == null) {
// this code has not yet been stored
break;
} else {
// we continue, this code is already stored
continue;
}
...
}
// we have created a unique code
}
}
有没有办法直接用 MySQL 创建它们,这样我就不需要为每个代码访问 MySQL?
编辑: 我想生成介于 1000000000000 和 9999999999999 之间的随机数。
【问题讨论】:
-
所有数据库都可以生成增量索引,查看mysql的auto_increment
-
“大量的唯一随机数”...这到底是什么意思?比如:你想生成1000个0到1之间的随机数吗?
-
你看过
rand()吗? -
我想生成介于 1000000000000 和 9999999999999 之间的 RANDOM 和 UNIQUE 数字。