SQLite 提供自动索引警告,即使该键是显式索引中的第一个键

  • 本文关键字:索引 第一个 警告 SQLite c# sqlite
  • 更新时间 :
  • 英文 :


我有一个具有以下架构的表:

CREATE TABLE LoanEvents (
Id integer primary key not null, 
LoanId integer not null default '0', 
Period integer not null default '0',
... more data
)

它定义了一个索引:

CREATE UNIQUE INDEX LoanEvents_LoanId_Period
on LoanEvents(LoanId,Period)

我正在此表上运行一个带有连接的复杂查询,并收到消息:

SQLite warning (284): automatic index on LoanEvents(LoanId)

当已经有一个索引以 LoanId 作为第一个键时,为什么我会收到此警告?

我可以做些什么来摆脱警告,而无需添加不必要的索引?

我找到了答案 - 我的查询在其 JOIN 中出错 - 我不小心将LoanId连接到一个字符串字段(名称与我要连接的整数字段非常相似(。

据我所知,这意味着SQLite需要在LoanId上有一个字符串索引,而不是它已经拥有的整数索引。

显示为可能重复的问题,SQLite 数据库在(列(上给出警告自动索引 升级 Android L 后实际上在第二个答案中包含一个线索,该线索指出索引必须与需要它的列具有相同的排序规则。我想我们可以补充一点,它也应该具有相同的类型。

我希望这有所帮助: SQLite 给出自动索引警告

免责声明:我还没有亲自测试过。

相关内容

最新更新