首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在创建视图时不展开`*`

问如何在创建视图时不展开`*`
EN

Stack Overflow用户
提问于 2014-02-26 17:41:02
回答 1查看 43关注 0票数 1

我在中创建了视图,如下所示:

代码语言:javascript
复制
create view MyView as
select field1,
       field2,
       table2.*
from table1 join table2 ....

问题是,当我向table2添加新列时,它不会出现在视图中。当我执行show create view MyView时,我看到table2的字段在查询中展开,而不是table2.*保留在那里。

如何才能强制MySQL在创建视图时不展开*,而是在查询运行时推迟展开?

PS:只是好奇,如果MySQL不能做到这一点,像PostgreSQL等其他数据库允许这样做吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-26 18:03:07

这是因为MySQL在创建视图时会展开所有表(定义它们的字段),这是一种行为。

您可以在创建后立即使用SHOW CREATE VIEW view_name语句进行检查。

因此,您需要重新创建视图。

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

https://stackoverflow.com/questions/22037343

复制
相关文章

相似问题

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