阅读https://github.com/jgilfelt/android-sqlite-asset-helper中的文档后,我似乎无法理解如何升级数据库
我只想将用户数据保留在一个表中。我不需要更改任何表格。升级几乎是在另一个表中添加新行。
所以流程(我猜)是:
onUpgrade:
1)从表1获取用户定义的数据的ArrayList
2)更新数据库
3)将用户数据放回表1
我在想这一切错吗?
任何提示将非常感谢。
我误解了更新脚本的要点。
当您的应用程序更新时,它不会安装新数据库。它保留了您的旧版本,并且仅运行更新脚本来使旧版本更快。
因此,如果您不需要更改用户数据,它将不会丢失。它将仅在脚本中运行sql。
如果确实需要更改用户数据表,则可以使用临时表进行更改。
例如:
-- add a FullNames column to Employees
ALTER TABLE "Employees" RENAME TO 'Employees_ME_TMP';
CREATE TABLE "Employees"
(
"EmployeeID" int NOT NULL,
"LastName" varchar(20) NOT NULL,
"FirstName" varchar(10) NOT NULL,
"FullName" varchar(150),
PRIMARY KEY ("EmployeeID")
);
INSERT INTO "Employees"
(
"EmployeeID",
"LastName",
"FirstName",
"FullName"
)
SELECT
"EmployeeID",
"LastName",
"FirstName",
"FirstName" || ' ' || "LastName"
FROM
"Employees_ME_TMP";
DROP TABLE "Employees_ME_TMP";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句