小巧、快速、可靠。
任選三項。

Session 模組 C 介面

sqlite3changeset_apply_v2 的旗標

#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT   0x0001
#define SQLITE_CHANGESETAPPLY_INVERT        0x0002
#define SQLITE_CHANGESETAPPLY_IGNORENOOP    0x0004
#define SQLITE_CHANGESETAPPLY_FKNOACTION    0x0008

以下旗標可透過第 9 個參數傳遞給 sqlite3changeset_apply_v2sqlite3changeset_apply_v2_strm

SQLITE_CHANGESETAPPLY_NOSAVEPOINT
通常,sessions 模組會將由單一呼叫 apply_v2() 或 apply_v2_strm() 執行的所有作業包含在 SAVEPOINT 中。如果變更集或修補程式集成功套用,則會提交 SAVEPOINT;如果發生錯誤,則會回滾。指定這個旗標會讓 sessions 模組略過這個儲存點。在這種情況下,如果呼叫 apply_v2() 時呼叫者有開啟的交易或儲存點,則呼叫者可以透過回滾來還原部分套用的變更集。

SQLITE_CHANGESETAPPLY_INVERT
在套用變更集之前,先反轉變更集。這等於在套用變更集之前,使用 sqlite3changeset_invert() 反轉變更集。使用修補程式集指定這個旗標是錯誤的。

SQLITE_CHANGESETAPPLY_IGNORENOOP
對於任何變更,如果即使套用也不會實際修改資料庫,則不要呼叫衝突處理常式程式。具體來說,這表示不會為以下情況呼叫衝突處理常式程式:

SQLITE_CHANGESETAPPLY_FKNOACTION
如果設定此旗標,則目標資料庫中的所有外來金鑰約束會像宣告為「ON UPDATE NO ACTION ON DELETE NO ACTION」一樣運作,即使它們實際上是 CASCADE、RESTRICT、SET NULL 或 SET DEFAULT。

另請參閱 物件常數函式 清單。