kotlin SQLDelight创建多个表

suzh9iv8  于 2022-11-16  发布在  Kotlin
关注(0)|答案(1)|浏览(212)

我正在尝试使用KMM,但是我在使用SQLDelight时遇到了一个问题。下面是AppDatabase.sq文件的代码示例。

CREATE TABLE Data (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
content TEXT NOT NULL
);

-- ====>> Add this new table <<==== (QUESTION 1)
CREATE TABLE Settings (
version TEXT NOT NULL
);

insertItem:
INSERT INTO Data(id, content) VALUES(?,?);

removeAll:
DELETE FROM Data;

selectById:
SELECT * FROM Data WHERE id = ?;

updateById:
UPDATE Data SET content = ? WHERE id = ?;

-- ====>> I want this to be run on DB creation <<==== (QUESTION 2)
INSERT INTO Settings(version) VALUES ('1.0.0');

getVersion:
SELECT version FROM Settings;

当我运行应用程序时,我收到:android.database.sqlite.SQLiteException: no such table: Settings (code 1 SQLITE_ERROR): , while compiling: SELECT version FROM Settings .
如果我使用Android StudioApp Inspection打开应用创建的数据库,似乎只存在Data表和其他与我的表无关的自动生成的表。
我的两个问题(请参阅SQL代码中的注解以获取编号参考)是:
1.如何从.sq文件创建此表(Settings)?
1.如何在不调用实际代码中任何函数的情况下将新值插入到表中?
如果你需要整个项目是here,但在以前的版本,因为我想实现的变化是不工作!

u5rb5r59

u5rb5r591#

我已经克隆了你的Github项目,添加了你在这里提供的代码,它工作得很好。两个表都被创建了,设置表有“1.0.0”版本行。
您是否卸载了手机上的应用程序并重新安装了它?可能您仍在使用旧版本的数据库,因为您没有为SQLDelight提供任何迁移。

相关问题