0

我有一个问题。重新发布 SQLite 数据库。

version数字 1 更新为 2 后,我的数据库更新为onUpgrade().

1-我想知道,我是否可以使用旧数据库。

onUpgrade()我用db.drop("previous table");

2-所以在删除该表后,我是否可以从中获取数据。

请详细解释。

任何好的建议都会被接受。

已编辑:- 我们是否可以使用旧版本的数据库。

4

3 回答 3

1

不,删除后您无法从旧表中访问任何内容- 删除表就像删除操作 - 您不应该轻松重新获得对它的访问权限。从我从搜索引擎获得的第一个链接:

删除表会删除表定义及其所有行。

如果您仍然需要以前的数据,我建议您仍然使用该数据库,并且在您觉得不再需要它之前不要删除它。这个SO answer 详细介绍了如何正确升级表。需要注意的一件有趣的事情是,如果您决定使用ALTER TABLE

SQLite受限于 ALTER TABLE 命令,它只允许添加和重命名,不允许删除/删除,这是通过重新创建表来完成的。

所以有多种方法可以解决这个问题——ALTER TABLE如果你有一点小事情要改变,那就很好了,你不必破坏所有东西,但如果你需要至少删除一列/行,你会想要遵循回答并创建一个临时表。

于 2013-01-18T04:12:20.587 回答
1

如果您想继续使用该表的数据,请不要删除它。请改用 ALTER TABLE 语句来添加新字段。

于 2013-01-18T04:15:01.443 回答
1

不,您要做的是获取数据的副本(在内存中或在另一个数据库中),重新创建数据库,然后写回数据。

当然,这仅在您需要删除一个或多个表以进行升级过程时。对于添加新列等简单情况,无需删除/重新创建表;因此简化了流程。

于 2013-01-18T04:21:06.743 回答