SQLite C 接口
修改的总行数
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()运行时对同一个数据库连接进行更改,则返回的值是不可预测的并且没有意义。
也可以看看:
- the sqlite3_changes() interface
- the count_changes pragma
- the changes() SQL function
- the data_version pragma
- the SQLITE_FCNTL_DATA_VERSION file control