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