CREATE Index Unique就可以了
当然主键也是一种非重索引,不过一个表只能有一个主键,但是可以有多个非重索引。
插入前判断,也是可以的,这种方法从性能角度考虑,能避免就应该避免。
为需要限制重复数据的字段添加唯一索引即可。附图稍后传上
于表设计视图
楼主也可以使用代码 防止输入重复值。请参考我的这条百度知道回答
>
里面有防止输入重复值的代码,可供参考。
我给你提供个思路,不要光从sql角度考虑,从java语言提供的异常机智考虑会更简单因为我在对数据库进行轮询的时候也经常遇到这样的问题最好的解决之道就是如果不存在就插入,如果重复,就跳过
//将插入语句放在循环体中
for(int i=0;i<n;i++){
try{
//省略具体插入代码
//插入的代码块,如果插入异常,将会发生异常 ,并被catch捕捉,但程序不做任何处理继续循环下面一条!!所有不存在的数据将会被正常插入所有插入异常将会被忽略!
}catch(Exception e){
}
}
---这个解决之道就是正常则插入,异常则跳过,满足了你的要求的呵呵,就是你想要的答案吧你在插入以前,先判断满足条件的数据在数据库里面有多少条数据,
select count() from tab_XX where col1=''
如果返回的数字大于0则该数据已经存在,就不用再发送SQL语句进行插入。
思路就是这样,楼主好好想象即可。求采纳!表table1(A, B),A列是主键,B是你说的关键字段。
假设你要插入一条新记录(a1, b1):
/ 判断数据库中是否有B=b1的记录 /
// 此sql语句取出数据库中所有B=b1的记录
string sql = "SELECT FROM table1 WHERE B=b1";
SqlCommand cmd = new SqlCommand(cmd, sqlconnection);
// 运行sql语句,并获得结果集
ResultSet rs = cmdexec();
if (rsnext()) {
// rs存在记录,不要插入
} else {
// rs不存在记录,即数据库中没有B=b1的项,可以插入。
}
不记得C#的类名了,以上代码希望能达意
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)