如何在不更改主键的情况下执行SQL插入或替换操作?

Cod*_*ile 1 sql database sqlite android

我正在尝试将记录插入到SQLite数据库表中.该表对列"URL"具有唯一约束,并且主键自动增量整数"_id".

我使用insert或replace作为我的冲突解决方案,因为我需要保留新数据.但是,此方法是递增主键并弄乱其他表中的某些外键.

在不更新_id的情况下覆盖记录的最佳方法是什么?

Fei*_*ngo 5

简单的答案是停止使用Replace语法.这会导致旧记录被删除,然后添加一个新记录...这将增加您的索引.

利用UPDATE语法来处理冲突

编辑:

如果你真的偏爱替换语法,那么它将付出代价.您需要编写其他代码,以便将旧索引的所有常见事件更新为新索引.不是太难,但这将纠正同步索引的问题

文档[在REPLACE部分列出的页面下面的方法]:http://www.sqlite.org/lang_conflict.html