int sqlite3_total_changes(sqlite3*); sqlite3_int64 sqlite3_total_changes64(sqlite3*);
這些函式會返回自資料庫連線開啟以來,所有 INSERT、UPDATE 或 DELETE 陳述式完成後所插入、修改或刪除的總列數,包括觸發程式中執行的部分。這兩個函式除了返回值類型不同之外,其他都相同,如果連線修改的列數超過類型 "int" 所支援的最大值,則 sqlite3_total_changes() 的返回值未定義。執行任何其他類型的 SQL 陳述式不會影響 sqlite3_total_changes() 返回的值。
外鍵動作 所做的更改包含在計數中,但 REPLACE 限制解析所做的更改則不包含在內。被 INSTEAD OF 觸發程式攔截的對檢視圖的更改也不會被計入。
sqlite3_total_changes(D) 介面只報告因針對資料庫連線 D 執行的 SQL 陳述式而更改的列數。其他資料庫連線的任何更改都會被忽略。要偵測其他資料庫連線對資料庫檔案的更改,請使用 PRAGMA data_version 命令或 SQLITE_FCNTL_DATA_VERSION 檔案控制。
如果在 sqlite3_total_changes() 執行時,另一個執行緒在同一個資料庫連線上進行更改,則返回的值將無法預測且無意義。
另請參閱