特别是在 Android 上的 SQLite 中,如果您更改构建视图的表的架构,是否需要"刷新"视图



真的是简单的问题。我们必须在sql服务器上这样做,但是android上的sqlite是一个完全不同的范式。 例如,不能删除列。 我想知道是否有人知道如果您更改表的架构,是否需要删除并重新添加视图(其中包含选择 *(。 据我所知,没有刷新视图命令。

更新:

这与Android无关,而是一个通用的SQLite问题,是关于"数据库视图"而不是常见的Android"视图"。

SQLite 文档可能有助于 https://www.sqlite.org/lang_altertable.html 和 https://www.sqlite.org/lang_createview.html,因为答案取决于您对架构执行的操作。

表和列重命名和列 不使用列名时自动添加所有工作并选择 *

更新:

SQLite 中的数据库视图只是将用于生成视图的 SQL 存储在"main".sqlite表中

因此,使用CREATE VIEW test AS SELECT * FROM myTable创建的视图 在sqlite_master表中显示为CREATE VIEW test AS SELECT * FROM myTable

在那里,如果您向myTable添加一列,那么如果您重新创建它,则视图的 SQL 将完全相同

文档说如果做其他事情,则删除并重新创建

更新:

如果对表执行其他操作,则可能需要"创建新表","将数据复制到新表","删除旧表","将新表重命名为旧表名称">

正如您可以在不删除引用表VIEW的情况下DROP表一样,在这种情况下您可能也不需要更新视图

如果你想在不编写代码的情况下使用它,你可以启动模拟器,然后在平台工具中使用命令行adb shell sqlite3在设备上运行sqlite3命令行工具。

由于SQLite本身只有CREATEDROP数据库视图,Android不会再有这样的视图。

最新更新