这是一个基本的例子。 sqlite文件存储单个项目文件的kvps:
CREATE TABLE settings (id INTEGER PRIMARY KEY ASC,rel,key,val)
rel
通常与现有记录中的id
相关联,但没有任何特定限制。
此设置表包含key=name, value=Josh
和key=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之间的任何关系行。
我该如何处理?