【发布时间】:2017-02-21 06:49:45
【问题描述】:
我开发了一个教程应用程序,其中保存了 500 多个问题和答案。 他们是另一张名为 favourites 的桌子。这是用于用户输入。 现在,我想用新的问题和答案更新我的应用程序。 但我不想删除收藏夹表的数据(以防用户已将一些问题标记为收藏夹,因此不应从收藏夹中删除这些问题)
那我该怎么做呢? 因为,我使用 SQLassethelper 库进行数据库连接。
我的旧数据库包含:
- 数据表(静态表)
- 收藏夹表(本地表)
所以,根据 sqliteassethelper 文档,我添加了我的新数据库: 其中包含:更新的数据表。我没有在此处插入收藏夹表,因为它将在脚本文件中创建。 并将该数据库存储在 assets>>databases 文件夹中。
那么 我创建了一个脚本字段 db.db_upgrade_1-2.sql
alter table "favourites" rename to "favourites_tmp";
create table "favourites" (
"id" Integer not null primary key autoincrement unique,
"question" text,
"answer" text,
"category" text,
"catid" integer
);
insert into "favourites" ("id","question","answer","category","catid") select from "favourites_tmp" "id","question","answer","category","catid" from "favourites_tmp";
drop table "favourites_tmp";
所以我认为这里的收藏夹表将使用旧数据创建。 但 当我运行该项目时,它说:没有这样的 tabld favourites。
【问题讨论】:
-
SQLiteAssetHelper README 中有一节与升级有关。
-
但我不想更改表格。我只想在特定表中插入更多数据(行)
-
我阅读了自述文件,它包含有关更改表的信息。
-
我已将 .db 文件保存在 assets/databases 文件夹中