刷新MySQL视图?

Wil*_*m W 12 mysql refresh views

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

这只是为了清除缓存吗?或者这是从头开始重建视图,还是这完全是假的?他们似乎能够判断观点何时没有被"刷新",我不确定他们是否理解它,"因为当它们被改变时需要刷新它们."

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

Mar*_*ers 22

数据更改时不需要刷新视图.当您查询它们时,它们将获取最新数据.

如果表结构发生更改,则可能需要重新创建它们:

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

资源

  • 如果我想添加新列,我需要更新视图定义? (2认同)
  • @William:是的,如果您希望新列出现在视图中.但我不认为"全部刷新"会为你做这件事.我认为您必须删除视图并重新创建它,或使用ALTER VIEW:http://dev.mysql.com/doc/refman/5.0/en/alter-view.html (2认同)