给定需要更新或向数据库添加记录的项目列表,如何使用SQLJet执行/复制UPSERT
操作?下面我有一个小解决方案,但问题是如果列表中的游戏顺序发生变化,那么我可能会跳过数据库中的记录,并为游戏列表中的项添加重复项。
for (Game g : games) {
if (!updateCursor.eof() &&
updateCursor.getString(GAME_TABLE_GID).equals(g.getGameID())) {
updateCursor.update(
updateCursor.getInteger(GAME_TABLE_PID),
updateCursor.getString(GAME_TABLE_GID),
gson.toJson(g)
);
updateCursor.next();
}
else {
gameTable.insert(g.getGameID(), gson.toJson(g));
}
}
我想到的其他解决方案包括迭代列表,然后每次遍历整个表格,与每行记录给定的游戏ID进行比较。我真的不愿意这样做。
我已经尝试过为此找到文档,但是在Stack Overflow上标记为SQLJet的10个(现在11个)问题以及项目的文档似乎缺乏,我还没有找到任何东西。