小。快。可靠。
三选二。

会话模块 C 接口

从会话对象生成补丁集

int sqlite3session_patchset(
  sqlite3_session *pSession,      /* Session object */
  int *pnPatchset,                /* OUT: Size of buffer at *ppPatchset */
  void **ppPatchset               /* OUT: Buffer containing patchset */
);

补丁集和变更集之间的区别在于

补丁集 Blob 可用于所有最新版本的 sqlite3changeset_xxx API 函数,但 sqlite3changeset_invert() 除外,如果传递给它的是补丁集,它将返回 SQLITE_CORRUPT。类似地,尝试使用旧版本的 sqlite3changeset_xxx API 来使用补丁集 Blob 也会引发 SQLITE_CORRUPT 错误。

由于非主键“old.*”字段被省略,因此如果将补丁集传递给 sqlite3changeset_apply() API,则无法检测或报告 SQLITE_CHANGESET_DATA 冲突。其他冲突类型的工作方式与变更集相同。

补丁集中的更改按与 sqlite3session_changeset() 函数生成的变更集相同的顺序排序(即,同一表的更改分组在一起,表按它们附加到会话对象的顺序出现)。

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