SQLite“INDEXED BY”在SELECT中不起作用

时间:2014-10-06 08:49:33

标签: sql sqlite select indexing

我有一个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是主键。问题是什么?指定与主键有关的索引的使用是否违法?

1 个答案:

答案 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。