会话模块 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。