3

アカウントからログインすると、サーバーから連絡先情報を取得しています。私はそれらの情報をSQLiteに保存していますが、ユーザーが2回目にログインしたときに、同じ重複した連絡先を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;

連絡先をデータベースに挿入するときに重複を回避するにはどうすればよいですか?

4

2 に答える 2

6

キーワードUNIQUEを使用してその列のインデックスを作成することをお勧めします。UNIQUE例を見つけることができます。hereまた、より単純なものも見つけることができますhere

テーブルを作成した後、UNIQUE INDEXfor 行を次のように作成する必要があります。

CREATE UNIQUE INDEX idx_something ON Table_name 
                                          (column_name_1, column_name_2,....);
于 2012-08-21T09:47:46.587 に答える
2

データベースで情報を確認してください。データがデータベースに存在する場合、情報をデータベースに挿入しない場合は何もしません

于 2012-08-21T09:43:43.813 に答える