当前位置: 首页 > 知识库问答 >
问题:

Android Room编译时警告外键中的列不是索引的一部分。什么意思?

欧阳博超
2023-03-14
    null
"CREATE TABLE IF NOT EXISTS `JoinNotesTags` (
    `id` INTEGER PRIMARY KEY AUTOINCREMENT, 
    `noteId` INTEGER, 
    `tagId` INTEGER, 
    FOREIGN KEY(`noteId`) REFERENCES `Note`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , 
    FOREIGN KEY(`tagId`) REFERENCES `Tag`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION 
)"
@Entity(
        indices = arrayOf(Index(value = *arrayOf("noteId", "tagId"), unique = true)),
        foreignKeys = arrayOf(
                ForeignKey(
                        entity = Note::class,
                        parentColumns = arrayOf("id"),
                        childColumns = arrayOf("noteId"),
                        onDelete = ForeignKey.CASCADE),
                ForeignKey(
                        entity = Tag::class,
                        parentColumns = arrayOf("id"),
                        childColumns = arrayOf("tagId"))
        )
)
"CREATE UNIQUE INDEX `index_JoinNotesTags_noteId_tagId` 
    ON `JoinNotesTags` (`noteId`, `tagId`)"

那么,我的问题是:这个警告是否只是(仍然是alpha-release)Room库中的一个bug--即编译时分析忽略了tagid是这个复合索引的一部分这一事实?或者我真的有索引问题,我需要解决,以避免全表扫描?

共有1个答案

何辰沛
2023-03-14

在kotlin代码中:

之前

@ColumnInfo(name = "question_id")
var questionId: Long

之后

@ColumnInfo(name = "question_id", index = true) //just add index = true
var questionId: Long
 类似资料:
  • 问题内容: Netbeans给我警告: 从未使用分配的变量 这是什么意思? 问题答案: 这意味着在给该变量赋值之后,您不会对该变量执行任何操作。例如,您不会返回它,使用它执行计算,将它传递给方法或其他任何方法。这基本上意味着在为变量分配值后尚未使用该变量。

  • 本文向大家介绍什么是JavaScript中的警告框?,包括了什么是JavaScript中的警告框?的使用技巧和注意事项,需要的朋友参考一下 警报对话框通常用于向用户发出警告消息。例如,如果一个输入字段要求输入一些文本,但用户未提供任何输入,则作为验证的一部分,您可以使用警报框来发出警告消息。 尽管如此,警报框仍可用于发送更友好的消息。警报框仅提供一个按钮“确定”以选择并继续。 示例 您可以尝试运行

  • 问题内容: 我已经做过这样的事情才能使用: 而且效果还不错。我只是不确定索引名称的目的-在这种情况下为“ blah”。我读过的东西说要用一个,但我不知道为什么。它似乎没有用在查询中,尽管如果导出架构可以看到它。 那么…索引名称的作用是什么?如果它有助于最终的行看起来像: 问题答案: 索引名称用于引用索引以用于将来的命令。像掉落指数。 http://dev.mysql.com/doc/refman/

  • 有人能给我指一个链接或解释熊猫索引的好处吗?我经常处理表,并根据列将它们连接起来,而这个连接/合并过程似乎无论如何都要对事物重新编制索引,所以考虑到我认为我不需要这样做,应用索引标准有点麻烦。 关于索引的最佳实践有什么想法吗?

  • 我创建了一个带有主键(UsersID、AccountsID)的帐户/用户表,如下所示。我是否应该为Users表添加索引?

  • 当我将函数应用于Groupby对象的多个列时,Pandas会抛出一个Future Warning。它建议使用列表作为索引,而不是元组。一个人会怎么做?