MySql中的自动查看更新

时间:2011-11-11 12:17:34

标签: mysql view

当基础表在MySQL中更新而不查询时,视图是否会自动更新?

进一步详细说明 - 如果我更新表格,那么即使我没有在视图上运行任何查询,视图也会更新吗?

5 个答案:

答案 0 :(得分:13)

每次在视图上执行查询时,它都会获取当前表中的数据 - 包括所有已提交的事务,但不会提交那些尚未提交的UPDATE或INSERT查询。

但当然,一旦你获得了这些数据,就不会再发送它了。有触发器,但数据库客户端仍然需要查询视图数据。

要进一步清理:View不存储(缓存)数据,它是一个逻辑结构,并将始终查看基础表。

答案 1 :(得分:6)

视图是可作为虚拟表访问的存储查询,由查询的结果集组成。 更改引用表中的数据会更改后续调用视图中显示的数据。

请参阅:http://en.wikipedia.org/wiki/View_(database)

有点像这样......

如果你现在问我时间,我会告诉你现在是十点钟。

如果你问我2小时后我会告诉你它是12点钟。

除非你问我,否则我不会一直告诉你时间。

答案 2 :(得分:3)

如果您创建了某个表的视图,那么当您更改数据或在其各自的表中插入新数据时,视图中的数据会自动更新。

但是,如果要在数据库表中添加更多列并更新其各自的视图,则更改不是自动的。

为此你可以使用' SQLYog'。这是处理视图的好工具。

答案 3 :(得分:2)

通常VIEWS会自动更新。

来自MySQL Documentation

  

某些视图可以更新。也就是说,您可以在语句中使用它们   作为UPDATE,DELETE或INSERT来更新底层的内容   表。要使视图可更新,必须一对一   视图中的行与中的行之间的关系   基础表。还有一些其他构造成为   查看nonupdatable。

答案 4 :(得分:0)

是的,视图会在MySQL中自动更新;包括但不限于:

  • 更改表结构
  • 在表上插入/更新/删除过程
  • 使用CREATE或REPLACE VIEW更改视图结构

注意:更改表的结构需要重新创建视图。