获取Python中sqlite3执行后修改的行数

30 投票
1 回答
14688 浏览
提问于 2025-04-15 19:36

在执行一些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*),但我没有查看过具体的代码,所以不能确定。

撰写回答