【问题标题】:Refresh MySQL views?刷新 MySQL 视图?
【发布时间】:2011-03-26 02:19:34
【问题描述】:

在工作中,我经常被告知,当对 MySQL 数据库进行更改时,需要“刷新”视图。接受的手动解决方案似乎进入 Workbench,右键单击并点击“全部刷新”

这只是为了清除缓存吗?还是从头开始重建视图,或者这完全是假的?他们似乎能够分辨出视图何时没有被“刷新”,我不确定他们是否理解这一点,“因为当它们发生变化时需要刷新。”

如果只是清除缓存,'FLUSH TABLES WITH READ LOCK'就够了吗?

【问题讨论】:

    标签: mysql views refresh


    【解决方案1】:

    我正在处理一个项目,但我的 视图 没有显示新数据,因为我试图在 NULL 上进行 join字段到另一个表。因此,我刚刚使用该字段的正确值更新了新数据,并且它起作用了。

    【讨论】:

      【解决方案2】:

      视图在数据改变时不需要刷新。当您查询它们时,它们会获取最新数据。

      如果您的表结构发生变化,它们可能需要重新创建:

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

      Source

      【讨论】:

      • 如果我想在其中添加新列,我需要更新视图定义吗?
      • @William:是的,如果您希望新列出现在视图中。但我不认为“刷新所有”对你有用。我认为您必须删除视图并重新创建它,或使用 ALTER VIEW:dev.mysql.com/doc/refman/5.0/en/alter-view.html
      • 谢谢,我认为这就是解决方案。它需要改变。
      猜你喜欢
      • 2011-09-03
      • 2012-03-29
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 2018-07-23
      • 2010-11-13
      • 2018-04-14
      相关资源
      最近更新 更多