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 数据库在 <table_name>(column) 上给出警告自动索引升级后 Android L实际上在第二个答案中包含一个线索,它指出索引必须具有与该列相同的排序规则需要它。我想我们可以添加它也应该具有相同的类型。
推荐阅读
- javascript - Chainlink Hackathon 21 安全帽问题部署节点
- kafka-consumer-api - 如何使用 Reactor java 编写具有按 PartitionKey 分组的背压的并行 kafka 消费者
- opengl-es - 如何使用 glReadPixels 在 Android NDK 中读取像素到位图?
- node.js - 如何在 Nestjs 中使用 multipart/form-data 将缓冲区数据上传到第三方 Api?
- mysql - 将具有不同值的mysql表与另一个表连接起来
- ffmpeg - 为(React Native)移动应用提供视频的最佳方式:为什么 HLS 比 LTE 慢?
- python - TypeError: 无法连接类型为 ' 的对象
'; 只有 Series 和 DataFrame obj 是有效的 - processing - 有人可以检查我的代码它不起作用,我检查了它,我发现有什么问题。(加工)
- python - 为什么 Visual Studio Code 运行不工作?
- ibm-watson - 从 Watson NLC 转换为 NLU