SQLDelight FTS5插入麻烦

问题描述

我在DBbrowser中创建了一个表:

CREATE VIRTUAL TABLE IF NOT EXISTS Students USING FTS5
(
    GroupId          UNINDEXED,StudentName
);

并向其中插入值。之后,我将带有此表的数据库添加到我的项目中。

它是sqldelight .sq文件中此表的声明:

CREATE VIRTUAL TABLE IF NOT EXISTS Students USING FTS5
(
    GroupId          INTEGER AS Int,StudentName      TEXT,rank             REAL
);

我需要显式声明等级,因为当我从表中进行SELECT时,我想为其应用HAVING MIN(rank),否则当我尝试像这样在表中插入值时:

insert:
INSERT INTO Students VALUES (?,?);

我收到一个错误

插入的值数量超出预期。找到:2个预期:3

如果我这样做:

insert:
INSERT INTO ResortKeywordEntity VALUES (?,?,?);

我收到一个例外:

sqliteException-表Students有2列,但提供了3个值(代码1):,而在编译时:INSERT INTO Students VALUES(?,?,?)

如何执行插入?还是我可以在没有显式声明的情况下应用HAVING MIN(rank)?

解决方法

确实

insert:
INSERT INTO Students(GroupId,StudentName) VALUES (?,?);

工作吗?