在视图中动态获取表中的所有列

时间:2017-10-29 01:43:28

标签: mysql

在MySQL中,保存以下视图后:

CREATE VIEW MyView AS SELECT * FROM MyTable;

如果我编辑 MyView ,则星号消失,SQL包含所有字段名称。例如:

ALTER VIEW MyView AS SELECT field1, field2 FROM MyTable;

MyTable 添加了新字段时,我希望视图输出也显示这些新字段。如何防止使用文字列名替换asterix?

1 个答案:

答案 0 :(得分:0)

视图是虚拟表的存储查询。所以更改原始表不会影响虚拟表 所以要更新视图,你需要删除它,然后重新创建它

DROP VIEW MyView 

然后

CREATE VIEW MyView AS SELECT * FROM MyTable;
  

视图定义在创建时“冻结”,因此之后对基础表的更改不会影响视图定义。例如,如果视图在表上定义为SELECT *,则稍后添加到表中的新列不会成为视图的一部分。   the source