我知道已经有很多关于这个主题的问题已经提出并得到了回答,但它们似乎不适合我的情况。
我有一个远程 sqlite 数据库——数据库服务器——和一个本地数据库——数据库本地包含相册条目。在需要时从数据库服务器进行数据库本地更新。DB server有一个called ,它存储在DB local中以防止重复,但是DB local也有自己的列,称为primary key
identifier
primary key
id
如果我需要在我的手机上创建一个新专辑,我会在DB local中插入一个identifier
设置为的条目,-1
并且何时可以访问DB 服务器,请求正确的identifier
.
我的问题是:我做了很多刷新,不想每次都增加我的主键。
当我从数据库服务器刷新本地数据库时,我想要新专辑和现有专辑。INSERT
UPDATE
我阅读了该INSERT OR REPLACE
声明,但它需要我identifier
在DB local中的列设置为unique
. 不幸的是,我不能这样做,因为我可以将多个identifier
设置为-1
.
有没有办法在单个请求中执行INSERT
or有条件的?UPDATE
谢谢 !
编辑:更新是这样完成的:本地数据库是从数据库服务器更新的。数据库本地数据永远不会推送到数据库服务器,添加新项目的唯一方法是调用服务器上的 API,这将在数据库服务器上创建一个空条目并获取它identifier
。但由于服务器并不总是可访问(EDGE/3G),DB local中的一些条目已identifier
设置为-1
. 一旦 API 调用返回相应的,我们将其存储在本地数据库identifier
中,而不是-1
用于相应的条目