获取Python中sqlite3执行后修改的行数
在执行一些SQL语句,比如UPDATE
(更新)和INSERT
(插入)时,通常用来获取数据的.fetch*()
方法在Cursor
实例上显然不适用,因为这些方法是用来获取查询结果的,而不是用来获取被修改的行数。
当你执行上述的SQL语句时,想要在Python中正确获取修改的行数,应该怎么做呢?还有在Sqlite3的C接口中,应该用什么API来实现呢?
1 个回答
46
在你使用 Cursor.execute*()
方法执行更新(UPDATE)或插入(INSERT)语句后,可以通过 Cursor.rowcount
来查看受影响的行数。
如果让我猜的话,我会说这个 Python 库可能是在调用 C API 中的 int sqlite3_changes(sqlite3*)
,但我没有查看过具体的代码,所以不能确定。