我有以下表结构:
Table Days: [_id,date,name]
^
|
Table Events: [_id, day_id ,description]
外键 day_id 设置为 ON DELETE CASCADE
我想在第 2 天“插入或更新”。所以我做了:
ContentValues values= new ContentValues();
values.put("_id",2);
values.put("date,"...");
values.put("name","welcome");
mDb.replace("days",null,values);
问题是,如果 day_id=2 已经存在(在我的情况下是最可能的选项),DBengine 会删除表并插入新行,因此与当天相关的所有事件也会被删除。
该解决方案有效,但它不是最理想的,对吗?
try {
mDb.insertOrThrow("days", null, values);
} catch (Exception e) {
mDb.update("days", values, "_id=2", null);
}
什么是该问题的正确解决方案