如何让Python-SQLite3检测WHERE子句中不存在的列并报错?
解决SQLite查询不存在列不报错的问题
默认情况下,SQLite会将查询中不存在的列视为NULL,所以你代码里的"School Type" = 'District Community Day Schools'会被解析为NULL = 'xxx',逻辑判断结果为假,最终COUNT(*)返回0。
要让这种引用不存在列的操作抛出错误,需要开启SQLite的SQLITE_ENABLE_UNKNOWN_COLUMN_ERROR编译选项。开启该选项后,任何SQL语句引用不存在的列时都会直接抛出错误。
注意:Python自带的sqlite3模块通常没有编译这个选项,如果你需要该功能,需要自行编译带有该选项的SQLite版本,再替换Python的sqlite3依赖库。目前没有可通过运行时PRAGMA设置直接启用该行为的方法。
内容的提问来源于stack exchange,提问作者Stanislav Kikot
相关产品推荐
相关产品推荐

