如何防止android 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,但我不想允许同一用户使用相同

我正在安卓系统中处理sqlite数据库,我想插入一个如下表

                    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请检查在插入新行之前,执行查询以检查该数据是否已存在