如何产生一个十位的随机数,并且要求数据库中不存在?

问题描述

项目需求,现在需要随机产生一个十位数的号码,并且要保证该号码在数据中不存在,我现在的做法就是当产生一个随机数后,立即去数据库中进行查询是否存在,如果不存在则添加,但是感觉这样做效率较低,不知道大家有什么好的思路?

解决方案

解决方案二:
随机的10位数,还得不重复。不重复的话,可以考虑序列,是个方法不重复的想到了Date的毫秒数和UUID是不重复的但是还是没有想到解决的办法Calendarnow=Calendar.getInstance();now.add(Calendar.YEAR,-44);System.out.println(now.getTimeInMillis());29846584462

仅获取这一年的毫秒数,也超过10位了
解决方案三:
楼上的可以,用一个规则生成10位数,并且保证这个数是唯一的,这样就不需要考虑在数据库中是否存在了,基本不同规则的数基本不可能重复
解决方案四:
楼主每次进数据库查询的话效率肯定是低的,有没有考虑先将数据库里的十位数数字先进行一次查询,返回该数据的数组,然后在服务器用一个dowhile,循环外给一个计数器intcount等于0,do{生成随机数,for(遍历已有10位数组){if随机数等于已有10位数count++}}while(count==0插入随机数)这样就只用在插入前只链接一次数据库
解决方案五:
不好意思没说清楚,count放在do内,for循环外

时间: 2024-09-29 11:51:06

如何产生一个十位的随机数,并且要求数据库中不存在?的相关文章

Sql语句,当在页面插入一个字段的时候,和数据库中的表字段进行对比,有这个名字就数量相加

问题描述 Sql语句,当在页面插入一个字段的时候,和数据库中的表字段进行对比,有这个名字就数量相加 Sql语句,当在页面插入一个字段的时候,和数据库中的表字段进行对比,有这个名字就数量相加,没有的话重新加入一条新的记录,Sql语句怎么实现? 当我页面添加的是"利群"时,添加一盒,那么数据库中利群这条记录中的num字段中的4变成5,如果是页面添加的是"黄鹤楼"同理,如果添加的不是name字段中的这两个,就新插入一条数据.Sql语句怎么写??急急急. 是Mysql的数据

由于工作需要,我使用C#制作了一个控制台程序,定期处理数据库中的一些信息。

问题描述 由于工作需要,我使用C#制作了一个控制台程序,定期处理数据库中的一些信息.以前一切正常,即便是出现错误也会有错误提示.但是最近出现了奇怪的问题,偶尔会莫名其妙的终止程序,没有任何的提示.请高手指导一下,为什么会出现这样的问题,如果有错误,如何能够显示出来? 解决方案 解决方案二:这种东西没有日志,你都猜不着别人怎么猜解决方案三:你把运行的一些操作写到LOG文件吧,以便观察出了什么错误解决方案四:多加一些trycatch,这样程序出错就不会退出而会弹出错误消息.另外要在程序中记录日志,程

编程-如何在数据库中随机生成一个n维可逆矩阵

问题描述 如何在数据库中随机生成一个n维可逆矩阵 需要在数据库中编程,产生一个n维可逆矩阵C.此矩阵应当是随机产生的. 解决方案 http://jingyan.baidu.com/article/ce436649fad5573773afd39a.html

asp 一个简单生成随机数程序

一个简单生成随机数程序  Public Function GetRndCode(maxLen)   Dim strNewPass,whatsNext,upper,lower,intCounter   Randomize   For intCounter = 1 To maxLen    whatsNext = Int((1 - 0 + 1) * Rnd + 0)    If whatsNext = 0 Then     upper = 90     lower = 65    Else    

请教一个关于java随机数的

问题描述 请教一个关于java随机数的 要做一个东西,整一个随机数,在原先的数量的基础上再增加一个随机数这个是部分代码这样对吗 解决方案 Java如何获得一个随机数---------------------- 解决方案二: 强制转换成int 的地方注意一下 ,很容易出错,最好不要用这种方法. Math.random()-----返回的是0-1之间的浮点数 Math.random(n)----返回的是0-(n-1)之间的某个数(这个数应该是整数,这里忘记了,楼主自己验证) 解决方案三: Rando

c#中如何每隔一段时间产生一个随机数并将其放入数据库中,随机数的变化范围不能太大

问题描述 c#中如何每隔一段时间产生一个随机数并将其放入数据库中,随机数的变化范围不能太大 解决方案 解决方案二:放一个定时器在tick里面写intx=newRandom().NextDouble(下限,上限);//把它存入数据库

40-.net如何从数据库中的一个表中取值

问题描述 .net如何从数据库中的一个表中取值 假设这是我数据库里的一张表(数据库是oracle),我该如何取得这些数将他们传给jsonObj.Rows,求教各位大神,能给个具体的实现过程吗? 解决方案 sonObj.Rows是你自己组装的json对象吧,你首先要查询数据库,这个自己看msdn把,很简单,获取值后开始组织json就行了 解决方案二: 自己读取数据后,通过服务器端代码赋值给aspx上的script标签就行,注意<%%>这种代码不能放js文件里面,必须是在aspx页面里面才能解析运

android一个动态添加删除网格视图的demo,可把状态保存在数据库中

转自: http://www.apkbus.com/forum.php?mod=viewthread&tid=166579 一个动态添加删除网格视图的demo,可把状态保存在数据库中,用于下次进来继续用.里面还有对不同item进行跳转,动画效果...总之十分好用,希望给大家带来帮助.有图有真相,亲们 ,赶快行动吧!! 数据库, 动态 本主题由 jnhoodlum 于 2014-4-1 16:32 添加图标 原创 a2.png(158.32 KB, 下载次数: 5) 点击添加进入添加应用页面,打钩

使用一个新的名称来恢复数据库

可以通过使用新名称的方式来获得数据库的恢复,这往往能够满足商业的需要.当使用不同名称来恢复数据库的时候,你将不得不设置数据库中每一个文件的新位置.如果你早先不知道数据库中有哪些文件,可以运行RESTORE FILELISTONLY声明来获得数据库文件的数量和名称.运行RESTORE FILELISTONLY可以为你提供文件的信息,比如文件的逻辑名称.物理名称.文件是数据文件还是日志文件等.接着,执行RESTORE DATABASE声明,包括数据库的新名称.将要存储的文件备份.如果你要处理日志文件