【发布时间】:2021-10-23 02:38:26
【问题描述】:
我正在使用 SQLDelight 作为缓存创建 KMM 应用程序,最近我将数据库实体更改为使用 Text(String) 作为 id 字段而不是 Int,现在我在插入时遇到错误,我可能只是遗漏了一些sqlDelight知识
这是我的桌子:
CREATE TABLE sidework_Entity(
id TEXT NOT NULL PRIMARY KEY,
name TEXT NOT NULL,
employees TEXT NOT NULL,
todoToday INTEGER AS Boolean DEFAULT 0
);
这是我的插入方法:
insertSidework:
INSERT OR REPLACE
INTO sidework_Entity(
id,
name,
employees,
todoToday
) VALUES (?,?,?,?);
这是我的错误:
statement aborts at 5: [INSERT OR REPLACE
INTO sidework_Entity(
id,
name,
employees,
todoToday
) VALUES (?,?,?,?)] datatype mismatch
我认为这很可能是我在 id 字段上设置的主键或类似的东西,但文档有点短。
【问题讨论】:
-
原来我只需要在重新运行之前清理应用程序并从我的设备中删除旧应用程序,很可能我的 id 为 int 的旧数据库表仍然潜伏在某个地方。谢谢大家
-
查看how,您可以运行迁移,以防您不想在更改数据库时要求用户重新安装应用程序
标签: kotlin-multiplatform kotlin-multiplatform-mobile sqldelight