首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql:将视图创建为select *

问Mysql:将视图创建为select *
EN

Stack Overflow用户
提问于 2017-12-14 08:50:31
回答 3查看 789关注 0票数 2

创建视图时,

代码语言:javascript
复制
CREATE VIEW view1 AS SELECT * FROM table1

mysql内部将此更改为

代码语言:javascript
复制
CREATE VIEW view1 AS SELECT f1, f2, f3 FROM table1

如果将新列f4添加到table1,则view1仍然只有前3列。你必须重新创造你的视野。如果你有很多观点的话,这是很烦人的。

是否有一种方法可以使mysql在视图声明中保存SELECT *,因此它总是选择所有字段,而不管表是否已经更改?

EN

回答 3

Stack Overflow用户

发布于 2017-12-14 08:51:59

MySql有一个正确的行为。

当您将视图创建为SELECT * FROM table1时,MySql会使用完整的字段列表更改代码。

更改表结构时,视图必须由用户更改。

如果存在这种自动行为,则可以在使用视图时创建性能问题。

假设您添加了50个字段,并且在表单中使用您的视图,您可以将数据加载从3个字段更改为53个字段。不是很好。

所以这种行为是正确的。

票数 1
EN

Stack Overflow用户

发布于 2017-12-14 08:51:52

长话短说,不。这就是MySQL在内部处理视图的方式。

专业提示:不要使用视图。这是穷人把不必要的复杂性隐藏在另一种复杂性背后的方式。简单地进行简单的查询是更好的方法,而MySQL则以更好的方式执行。

票数 0
EN

Stack Overflow用户

发布于 2017-12-14 08:59:31

MySql视图不用于返回表的完整定义,它的基本用途是用规范或marge数据返回表的一部分。

Views在没有it.The原则的情况下不会有多大用处,如果您从一个视图中选择从表中选择的视图,如果视图从子查询中的表中选择,并且视图没有使用合并algorithm.View处理进行优化,那么它也适用。您可以看到这个博客,以了解MySql.视图限制视图的正确之处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47809237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档