Mak*_*Mak 11 android android-contentprovider
是否可以SQLiteDatabase在insert()内容提供程序的重写方法中调用update方法?
Tse*_*eng 26
基本上它很好,但由于你没有提供代码,我只能发布2种可能的方法
第一:
// In your content provider
public Uri insert(...) {
long insertId = db.insert(...);
if(insertId == -1) {
// insert failed, do update
db.update(...);
}
}
Run Code Online (Sandbox Code Playgroud)
第二:
public Uri insert(...) {
long insertId = db.insertWithOnConflict(table, null, values, SQLiteDatabase.CONFLICT_REPLACE)
if(insertId == -1) {
// insert and update/replace failed
}
}
Run Code Online (Sandbox Code Playgroud)
查看SQLiteDatabase以获取第四个参数的参考.在大多数情况下,最后一个方法应该足够了,除非您只想在行存在时更新某些字段并且如果不存在则包含所有字段.
insertWithOnConflict最有用的需求可能是,您可以插入一行,如果它已经存在,则忽略该插入,而是返回已存在行的Uri /主键.
| 归档时间: |
|
| 查看次数: |
8287 次 |
| 最近记录: |