在SQLite中,如何防止REPLACE更新现有记录的id?

时间:2012-04-18 14:52:10

标签: sqlite insert replace

这是一个基本的例子。 sqlite文件存储单个项目文件的kvps:

CREATE TABLE settings (id INTEGER PRIMARY KEY ASC,rel,key,val)

rel通常与现有记录中的id相关联,但没有任何特定限制。

此设置表包含key=name, value=Joshkey=url, value=www.site.com等设置。我正在使用的sqlite实现在执行中忽略了多个查询,并且循环很慢,所以我只做这样的事情:

REPLACE INTO settings(key, val) 
    SELECT 'name', 'Vosh' UNION SELECT 'url', 'www.site.com' UNION ...

这通常会将Josh的名称更新为Vosh,但它也会设置一个新的ID,从而打破该rel在另一个中引用的特定记录ID之间的任何关系行。

我该如何处理?

0 个答案:

没有答案