Mar*_*ies 8 sqlite android insert-update where-clause
我需要插入或更新,我发现SQLiteDatabase的方法insertWithOnConflict,但我不知道如何检查该条目是否已存在.
从理论上讲,我需要一个"Where"参数来检查某个ID是否存在,如果存在,它应该替换所有其他列.
这就是我现在所拥有的,但我不认为第二个参数是唯一的id
ContentValues args = new ContentValues();
args.put(AppDatabase.COLUMN_ID, entry.getId());
args.put(AppDatabase.COLUMN_NAME, entry.getAppname());
args.put(AppDatabase.COLUMN_URL, entry.getAppUrl());
database.insertWithOnConflict(AppDatabase.TABLE_FILELIST, COLUMN_ID, args, SQLiteDatabase.CONFLICT_REPLACE);
Run Code Online (Sandbox Code Playgroud)
我该如何管理这种行为?
确保表中有一些适当的约束,例如PRIMARY KEY或UNIQUE.
插入时,通过以下方法向此约束列添加值ContentValues.如果插入新行会违反某些约束,则首先删除冲突的行,然后插入新行.
在你的情况下,COLUMN_ID看起来像一个很好的PRIMARY KEY约束候选人.您的代码中没有必要使用第二个arg nullColumnHack值COLUMN_ID,您可以将其传递给null.
| 归档时间: |
|
| 查看次数: |
9248 次 |
| 最近记录: |