给定需要更新或向数据库添加记录的项目列表,我如何UPSERT
使用 SQLJet 执行/复制操作?下面我有一个小解决方案,但问题是如果列表中的游戏顺序发生变化,那么我可能会跳过数据库中的一条记录,并为游戏列表中的项目添加重复项。
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 个)问题中,并且该项目似乎缺乏文档,我找不到任何东西。