真的是简单的问题。我们必须在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本身只有CREATE
和DROP
数据库视图,Android不会再有这样的视图。