我在中创建了视图,如下所示:
create view MyView as
select field1,
field2,
table2.*
from table1 join table2 ....问题是,当我向table2添加新列时,它不会出现在视图中。当我执行show create view MyView时,我看到table2的字段在查询中展开,而不是table2.*保留在那里。
如何才能强制MySQL在创建视图时不展开*,而是在查询运行时推迟展开?
PS:只是好奇,如果MySQL不能做到这一点,像PostgreSQL等其他数据库允许这样做吗?
发布于 2014-02-26 18:03:07
这是因为MySQL在创建视图时会展开所有表(定义它们的字段),这是一种行为。
您可以在创建后立即使用SHOW CREATE VIEW view_name语句进行检查。
因此,您需要重新创建视图。
https://stackoverflow.com/questions/22037343
复制相似问题