我有一个Tune表,它包含一个_id字段和一个MD5字段..以及与此问题无关的其他字段。当我执行以下语句时,我得到了我的MD5值:
SELECT MD5 FROM Tune WHERE _id='5'
我有一个索引ITUNEID,我试图用它来加速定位一个曲调记录:
CREATE INDEX ITUNEID ON Tune (_id)
当我使用以下语句时,我得到一个"无查询解决方案"错误。
SELECT MD5 FROM Tune INDEXED BY ITUNEID WHERE _id='5'
上述陈述有什么问题?
我忘了提到_id是主键。问题是什么?指定与主键有关的索引的使用是否违法?
答案 0 :(得分:0)
我遇到了同样的问题 - 但有额外的上下文。遗憾的是,到 2021 年仍然有意义。
错误 sqlite3.OperationalError: no query solution
仅在 Python 中引发(在我的情况下为 3.8.6 所以 SQLite 3.32.3),而不是在 SQLite 3.12.1 (SQLite 3.33.0) 的 DB Browser 中。
所以我检查了更新的 Python 版本(3.9.2 - SQLite 3.34.0),问题就解决了。
我好像这个问题只存在于 3.33.0 以下的 SQLite。