问题描述
- 如何避免插入重复的数据到SQLite数据库中?
-
当通过账号登陆时,我从服务器中获取联系信息,我把这些信息储存在SQLite中,当用户第二次登录时,我不希望再次插入 SQLite 数据库中重复的联系信息。
我使用的下面的代码,但是没有成功:boolean exist= contact_db.CheckItem(entry.getUser()); if(!exist) { // insert }else { // don't insert }
DB class:
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;
如何避免第二次登录时,插入重复的数据到SQLite数据库中?
解决方案
新建唯一索引: CREATE UNIQUE INDEX mycolumn_index ON mytable (myclumn);
第二步:调用replace into语句 (本句是存在则更新意思)
如果以上不是你想要的,还可以看看,客户端软件有没有窗口的生命周期,第一次登陆时触发的事件
解决方案二:
使用 UNIQUE 关键字给 column 创建一个 UNIQUE 索引。例子
创建了表格后,再为row 创建一个 UNIQUE INDEX
CREATE UNIQUE INDEX idx_something ON Table_name
(column_name_1, column_name_2,....);
解决方案三:
- > ## __
时间: 2024-11-10 00:13:08