1

我知道已经有很多关于这个主题的问题已经提出并得到了回答,但它们似乎不适合我的情况。

我有一个远程 sqlite 数据库——数据库服务器——和一个本地数据库——数据库本地包含相册条目。在需要时从数据库服务器进行数据库本地更新。DB server有一个called ,它存储在DB local中以防止重复,但是DB local也有自己的列,称为primary keyidentifierprimary keyid

如果我需要在我的手机上创建一个新专辑,我会在DB local中插入一个identifier设置为的条目,-1并且何时可以访问DB 服务器,请求正确的identifier.

我的问题是:我做了很多刷新,不想每次都增加我的主键。

当我从数据库服务器刷新本地数据库时,我想要新专辑和现有专辑。INSERTUPDATE

我阅读了该INSERT OR REPLACE声明,但它需要我identifierDB local中的列设置为unique. 不幸的是,我不能这样做,因为我可以将多个identifier设置为-1.

有没有办法在单个请求中执行INSERTor有条件的?UPDATE

谢谢 !

编辑:更新是这样完成的:本地数据库是从数据库服务器更新的。数据库本地数据永远不会推送到数据库服务器,添加新项目的唯一方法是调用服务器上的 API,这将在数据库服务器上创建一个空条目并获取它identifier。但由于服务器并不总是可访问(EDGE/3G),DB local中的一些条目已identifier设置为-1. 一旦 API 调用返回相应的,我们将其存储在本地数据库identifier中,而不是-1用于相应的条目

4

0 回答 0