Python中SQLite获取cursor.rowcount始终-1的解释

在Python实现的DB API中,rowcount属性“当在特定类型数据库接口未实现cursor的rowcount属性时会返回-1”,sqlite就属于这种情况。

搜了一下,有个人说调用一次fetchall()就会自动更新rowcount的值,这是自己胡编臆造的。

替代的解决方法是使用SQLite中内置的计数函数:

SELECT COUNT(*) FROM TABLE

然后fetchone()即可获得总条数。