如何避免将重复项插入SQLite数据库?

时间:2012-08-21 09:41:04

标签: android sqlite

我通过帐户登录时从服务器获取联系信息。我在SQLite中存储这些信息,当用户第二次登录时,我不想再将相同的重复联系人插入到SQLite中。

我试过这样但没有工作

boolean exist= contact_db.CheckItem(entry.getUser());               
if(!exist) {
 // insert
}else {
 // don't insert
}

DB类中的代码

Cursor mCursor = database.query(ContactsDB.TABLE_CONTACTS, allColumns,
                    ContactsDB.CONTACT_USERID + "= ' " + name +"'" , null, null, null, null);
    if (mCursor != null && mCursor.moveToFirst()) 
        return false;
    else return true;

如何在将联系人插入数据库时​​避免重复?

2 个答案:

答案 0 :(得分:6)

最好使用UNIQUE关键字为该列创建UNIQUE索引。可以找到一个示例here,也可以找到更简单的here

创建表格后,您必须为行创建UNIQUE INDEX

CREATE UNIQUE INDEX idx_something ON Table_name 
                                          (column_name_1, column_name_2,....);

答案 1 :(得分:2)

检查数据库以获取信息。 如果数据存在于数据库中,则不执行任何操作(如果不将信息插入数据库)