如果不存在则插入?
我正在提示用户将项目添加到 SQLiteDb。当他们单击添加时,我想检查该项目是否已经存在......如果不存在,那么我想插入它。
我拨打了
mDbHelper.createNote(inputLine.getText().toString().trim(), mTable[i]);
Which Calls...
public long createNote(String value, String table) {
ContentValues initialValues = new ContentValues();
initialValues.put(table, value);
return mDb.insert(table, null, initialValues);
}
这可行,但它不会检查该项目是否已存在,因此它仍然会插入重复项。所以我尝试了
return mDb.insertWithOnConflict(table, null, initialValues, SQLiteDatabase.CONFLICT_FAIL);
但是,它似乎无法识别 insertWIthOnConflict 或 SQLiteDatabase.CONFLICT_FAIL...
我怎样才能让它工作?
编辑:它有 1 个表,2 行。表名=注释,行=_id,注释。
I'm prompting a user to add an item to an SQLiteDb. When they click add, I want to check if that item already exists... if it doesn't then I want to insert it.
I make the call
mDbHelper.createNote(inputLine.getText().toString().trim(), mTable[i]);
Which calls...
public long createNote(String value, String table) {
ContentValues initialValues = new ContentValues();
initialValues.put(table, value);
return mDb.insert(table, null, initialValues);
}
Thats works but it doesn't check if the item already exists, so it still inserts duplicates. So I tried
return mDb.insertWithOnConflict(table, null, initialValues, SQLiteDatabase.CONFLICT_FAIL);
However, it doesn't appear to recognize insertWIthOnConflict or SQLiteDatabase.CONFLICT_FAIL...
How can I get this to work?
Edit: it's 1 table, 2 rows. table name = note, rows = _id, note.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 REPLACE 命令
Use the REPLACE command
在这种情况下,我执行这样的检查
:
In such situation I perfrom such checking:
where
添加主键。如果尝试插入具有相同键的另一行,则插入将失败。
Add a Primary Key. If you try to insert another row with the same key, the insert will fail.
您是否尝试过使用未设置为自动增量的主键?这可能就是 REPLACE 命令不起作用的原因
Have you tried using a primary key that isn't set to auto-increment? That might be why the REPLACE command isn't working