0

我在 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
);

我需要显式声明排名,因为我想在从表中选择时应用 HAVING MIN(rank) (否则它不会编译),但是当我尝试在表中插入值时:

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

我收到一个错误:

插入的值数量意外。找到:2 预期:3

如果我这样做:

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

我收到一个例外:

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

我如何执行插入?或者也许我可以在没有明确声明的情况下应用 HAVING MIN(rank)?

4

1 回答 1

1

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

工作?

于 2020-09-29T11:22:40.950 回答