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