会话模块 C 接口

冲突处理程序返回的常量

#define SQLITE_CHANGESET_OMIT       0
#define SQLITE_CHANGESET_REPLACE    1
#define SQLITE_CHANGESET_ABORT      2

冲突处理程序回调必须返回以下三个值之一。

SQLITE_CHANGESET_OMIT
如果冲突处理程序返回此值,则不会采取任何特殊操作。不应用导致冲突的更改。会话模块继续到变更集中的下一个变更。

SQLITE_CHANGESET_REPLACE
如果冲突处理程序的第二个参数是 SQLITE_CHANGESET_DATA 或 SQLITE_CHANGESET_CONFLICT,则只能返回此值。如果不是这种情况,则回滚到目前为止应用的任何更改,并且对 sqlite3changeset_apply() 的调用返回 SQLITE_MISUSE。

如果 CHANGESET_REPLACE 由 SQLITE_CHANGESET_DATA 冲突处理程序返回,则冲突行将被更新或删除,具体取决于更改的类型。

如果 CHANGESET_REPLACE 由 SQLITE_CHANGESET_CONFLICT 冲突处理程序返回,则冲突行将从数据库中删除,并进行第二次应用更改的尝试。如果第二次尝试失败,则在继续之前将原始行恢复到数据库中。

SQLITE_CHANGESET_ABORT
如果返回此值,则回滚到目前为止应用的任何更改,并且对 sqlite3changeset_apply() 的调用返回 SQLITE_ABORT。

另请参阅 对象常量函数的列表。