如何防止android sqlite数据库中的重复数据?
我正在安卓系统中处理sqlite数据库,我想插入一个如下表如何防止android sqlite数据库中的重复数据?,android,android-sqlite,Android,Android Sqlite,我正在安卓系统中处理sqlite数据库,我想插入一个如下表 id procode proname user 1 pro123 mobile 120 2 pro123 mobile 121 3 pro345 watches 120 在上表中,唯一id是uniq所有值都不是uniq,但我不想允许同一用户使用相同
id procode proname user
1 pro123 mobile 120
2 pro123 mobile 121
3 pro345 watches 120
在上表中,唯一id是uniq所有值都不是uniq,但我不想允许同一用户使用相同的数据,这意味着另一个用户将插入相同的数据
现在我不想在检查procode和user的数据时插入重复项
意思是像bwlow
id procode proname user
1 pro123 mobile 120
2 pro123 mobile 121
3 pro123 mobile 120
在上表中,3是重复数据创建表时需要创建一个唯一的键
CREATE TABLE name (<your column definitions>, UNIQUE (procode, proname, user) ON CONFLICT REPLACE);
在冲突替换时创建表名(,唯一(procode,proname,user);
要处理冲突时发生的情况,请参见插入新行时的新用户 因此,在将数据插入数据库之前 检查是否已经存在相同的用户数据。 下面是针对同一问题的SQLITE查询提示
Cursor c=db.rawQuery("SELECT * FROM user WHERE user="YOUR_VALUE", null);
if(c.moveToFirst())
{
showMessage("Error", "Record exist");
}
else
{
// Inserting record
}
我在反复试验的过程中找到了最好的解决办法 在主要活动中
int count = 0;
while(db.findTask(results.toUpperCase()).moveToNext()){
count++;
break;
}
if(count!=0){
Snackbar.make(v, "Name Already Taken", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
return;
}
在数据库中
public Cursor findTask(String taskName){
SQLiteDatabase db = this.getWritableDatabase();
String query = "SELECT "+ID+ " FROM "+TABLE_NAME+" WHERE "+
TASK_NAME + " = '"+taskName+"'";
Cursor data = db.rawQuery(query,null);
return data;
将procode设置为主键。您可以检查数据库中的多个主键procode可用于其他用户I Update my qu请检查在插入新行之前,执行查询以检查该数据是否已存在