|
int sqlite3_total_changes(sqlite3*);
This function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the database connection was opened. The count returned by sqlite3_total_changes() includes all changes from all trigger contexts and changes made by foreign key actions. However, the count does not include changes used to implement REPLACE constraints, do rollbacks or ABORT processing, or DROP TABLE processing. The count does not include rows of views that fire an INSTEAD OF trigger, though if the INSTEAD OF trigger makes changes of its own, those changes are counted. The sqlite3_total_changes() function counts the changes as soon as the statement that makes them is completed (when the statement handle is passed to sqlite3_reset() or sqlite3_finalize()).
See also the sqlite3_changes() interface, the count_changes pragma, and the total_changes() SQL function.
If a separate thread makes changes on the same database connection while sqlite3_total_changes() is running then the value returned is unpredictable and not meaningful.