sqlite

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

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

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

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

SELECT COUNT(*) FROM TABLE

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

Sqlite中的Boolean值初始化

项目的持久层现在用sqlite3来做,但非常讨厌的是建表时Boolean列的Default值初始化怎么都不对,填true、false或者True、False都报错(翻译过来大约是默认值初始化失败)。

Google了一下原来sqlite中的Boolean值只有0(false)或1(true)两种状态,改成0后果然不报错了。