Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特别是在android上的SQLite中,视图是否需要为;“刷新”;如果您更改了构建它们的表的架构?_Android_Sqlite - Fatal编程技术网

特别是在android上的SQLite中,视图是否需要为;“刷新”;如果您更改了构建它们的表的架构?

特别是在android上的SQLite中,视图是否需要为;“刷新”;如果您更改了构建它们的表的架构?,android,sqlite,Android,Sqlite,这个问题真的很简单。我们必须在sql server上这样做,但android上的sqlite是一个完全不同的范例。例如,您不能删除列。我想知道如果您更改了表的模式,是否有人知道是否需要删除和读取视图(其中包含select*)。据我所知,没有刷新视图命令。更新: 这与Android无关,只是一个一般的SQLite问题,是关于“数据库视图”,而不是常见的Android“视图” SQLite文档可能会有所帮助 答案取决于你对模式做了什么 不使用列名时,表格和列重命名和列添加所有工作,然后选择* 更新:

这个问题真的很简单。我们必须在sql server上这样做,但android上的sqlite是一个完全不同的范例。例如,您不能删除列。我想知道如果您更改了表的模式,是否有人知道是否需要删除和读取视图(其中包含select*)。据我所知,没有刷新视图命令。

更新:

这与Android无关,只是一个一般的SQLite问题,是关于“数据库视图”,而不是常见的Android“视图”

SQLite文档可能会有所帮助 答案取决于你对模式做了什么

不使用列名时,表格和列重命名和列添加所有工作,然后选择*


更新:

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

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

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

文件上说,如果做其他事情,就放弃并重新创建


更新:

如果对表执行其他操作,您可能需要“创建新表”、“将数据复制到新表”、“删除旧表”、“将新表重命名为旧表名”

由于您可以在不删除引用它的
视图的情况下
删除
表,因此在这种情况下,您可能也不需要更新视图

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


由于SQLite本身只有
CREATE
DROP
数据库视图,Android就不会有更多了。

我想你还没有完全理解我的问题。例如,当我向一个表中添加一列时,我需要对基于它构建的sqlite中的视图执行任何操作吗?MSSQL有一个视图重建命令,但sqlite似乎没有。是的,我误读了这个问题,它真的不是一个Android问题,如果这个问题说“数据库视图”而不仅仅是“视图”这个词会更好,因为“视图”在Android中是一个非常常见的概念。根据我对“SQLite数据库视图”的经验进行了更新,您能更好地解释一下吗?我仔细阅读了该文档,无法确定添加列是否需要删除并添加视图。它“似乎”说“不”,因为架构是文本,但没有直接显示。解释了sqlite如何存储视图,以及使用
SELECT*
时不需要更改视图的原因。由于文档中对我添加的一些详细信息很少,因此您可以使用命令行sqlite3工具快速查看它正在做什么