Android的SQLiteDatabase中的冲突解决方案

kib*_*yte 15 sqlite android

如果我插入重复的行,Android的SQLite库如何解决冲突?我正在为API级别7构建我的应用程序,遗憾的是,它没有SQLiteDatabase.insertOnConflict()从API级别8开始包含的方法.

Dav*_*unt 30

您可以在表定义中指定UNIQUE索引,该索引允许行为REPLACE D:

CREATE TABLE mytable (
  id  INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL,
  UNIQUE (id) ON CONFLICT REPLACE
)
Run Code Online (Sandbox Code Playgroud)

如果一行INSERT或UPDATE语句尝试添加具有已存在的id的行,则现有行将替换为新行.

  • 实际上,你必须小心并确保它在所有情况下都是理想的结果.它适用于将本地数据库与远程数据同步的事情. (3认同)

Ahm*_*gle 6

ON CONFLICT你可以说SQLite中有一个条款INSERT INTO ... ON CONFLICT....

请阅读文档. http://www.sqlite.org/lang_conflict.html