编写程序不出现重复值怎么办
2022-11-28
阅读(465)
问:oracle 存储过程中,不想让数据出现重复值该怎么办?
- 答:你的表没有主键的吗?
如果你是一条记录多个列不想有重复的值,你可以把这几列建立唯一约束。
如果你是一列记录不想有重复值,你可以把该列建立唯一约束。
你用存储过程插入数据还要判断是否重复,面对频繁的插入你考虑到效率了没有,而且还非常容易出错。正常的方法都是通过约束达到去重。
如果非要使用存储过程,
使用
if (select * from tablename where 你的列='你插入的变量') 判断是否有值
then
dbms_output.putline('该值已经存在') ;
else
insert into tablename 你的列 values ('你插入的变量');
end if - 答:插入数据之前先判断一下表里有没有相同数据了,没有就插入
- 答:用distinct 【select distinct username from tablename 】
或者 聚合函数 分组 去重
select a.area_code, sum(nvl(a.mms_mt_count,0)),count(a.phone_number)
from table_name a group by a.area_code - 答:SELECT DISTINCT FROM TABLENAME
问:c语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复
- 答:#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{ int a[10],i,j,k;
srand(time(NULL));
for(i=0;i<10;i++){//采集10个随机数
a[i]=rand()%90+10;//随机数赋值
k=0;//重复个数清零
for(j=0;j<i;j++)//计算重复的个数
if(a[i]==a[j]) k++;
if(k!=0) i--;//重复个数不为0,就是有重复的
} //重新产生这个随机数
for(i=0;i<10;i++)
printf("%4d",a[i]);
}
如图所示,rand产生不了不重复的随机数,所以方法就是把产生的重复的去掉。我这里举个例子,按照这个思路,插入到你的程序里就行了。
望采纳。。。。。。 - 答:int count=0; //已成功生成的随机数计数
int n;
int i;
while(count<50)
{
int find=0; //标识变量:如为1表示已有这个随机数
n=rand()%90+10; //获得随机数
for(i=0;i<count;i++) //检索已有随机数数组中是否存在该数
{
if(a[i]==n)
{
find=1; //如果存在该数,则改变标识变量为1
break;
}
}
if(find==0) //如果find==0,表示已生成随机数数组中没有该值
{
a[count++]=n; //该随机数存入数组中,并使count计数+1
}
}
问:如何控制你B/S结构程序不出现重复提交?
- 答:1、这个很常见的程序设计的问题。简单来说,就是控制form表单的重复提交。
2、首先,前端按钮需要做一些判断,防止短时间内的重复点击。这个还是比较方便做的,最简单的就是点击过后直接 disabled,不给再点击就可以了。
3、其次,每个表单需要生成一个特定的token,这样后台可以对于同一个用户的用同一个token请求,进行重复判断。
4、每个表单都有特定的token值,提交过后,也有相应记录,这样前端也可以判断,token提交过后,这个表单都不会再出现了。
5、希望对你有帮助。