冲突解决常量


¥Conflict resolution constants

以下常量之一可用作传递给 database.applyChangeset()onConflict 冲突解决处理程序的参数。另请参阅 SQLite 文档中的 传递给冲突处理程序的常量

¥One of the following constants is available as an argument to the onConflict conflict resolution handler passed to database.applyChangeset(). See also Constants Passed To The Conflict Handler in the SQLite documentation.

常量 描述
SQLITE_CHANGESET_DATA 如果数据库中存在具有所需 PRIMARY KEY 字段的行,但更新修改的一个或多个其他(非主键)字段不包含预期的 "before" 值,则在处理 DELETE 或 UPDATE 更改时使用此常量调用冲突处理程序。
SQLITE_CHANGESET_NOTFOUND 如果数据库中不存在具有所需 PRIMARY KEY 字段的行,则在处理 DELETE 或 UPDATE 更改时使用此常量调用冲突处理程序。
SQLITE_CHANGESET_CONFLICT 如果操作会导致重复的主键值,则在处理 INSERT 更改时将此常量传递给冲突处理程序。
SQLITE_CHANGESET_CONSTRAINT 如果启用了外键处理,并且应用变更集使数据库处于包含外键违规的状态,则在提交变更集之前,使用此常量调用冲突处理程序一次。如果冲突处理程序返回 SQLITE_CHANGESET_OMIT,则提交更改(包括导致外键约束冲突的更改)。或者,如果它返回 SQLITE_CHANGESET_ABORT,则回滚变更集。
SQLITE_CHANGESET_FOREIGN_KEY 如果在应用更改时发生任何其他约束违规(即 UNIQUE、CHECK 或 NOT NULL 约束),则使用此常量调用冲突处理程序。

传递给 database.applyChangeset()onConflict 冲突解决处理程序必须返回以下常量之一。另请参阅 SQLite 文档中的 从冲突处理程序返回的常量

¥One of the following constants must be returned from the onConflict conflict resolution handler passed to database.applyChangeset(). See also Constants Returned From The Conflict Handler in the SQLite documentation.

常量 描述
SQLITE_CHANGESET_OMIT 冲突的更改将被忽略。
SQLITE_CHANGESET_REPLACE 冲突的更改将替换现有值。请注意,只有当冲突类型为 SQLITE_CHANGESET_DATASQLITE_CHANGESET_CONFLICT 时,才能返回此值。
SQLITE_CHANGESET_ABORT 当更改遇到冲突时中止并回滚数据库。