【发布时间】:2020-09-29 05:08:03
【问题描述】:
我在 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)?
【问题讨论】:
标签: sqldelight