当基础表在MySQL中更新而不查询时,视图是否会自动更新?
进一步详细说明 - 如果我更新表格,那么即使我没有在视图上运行任何查询,视图也会更新吗?
答案 0 :(得分:13)
每次在视图上执行查询时,它都会获取当前表中的数据 - 包括所有已提交的事务,但不会提交那些尚未提交的UPDATE或INSERT查询。
但当然,一旦你获得了这些数据,就不会再发送它了。有触发器,但数据库客户端仍然需要查询视图数据。
要进一步清理:View不存储(缓存)数据,它是一个逻辑结构,并将始终查看基础表。
答案 1 :(得分:6)
视图是可作为虚拟表访问的存储查询,由查询的结果集组成。 更改引用表中的数据会更改后续调用视图中显示的数据。
请参阅:http://en.wikipedia.org/wiki/View_(database)
有点像这样......
如果你现在问我时间,我会告诉你现在是十点钟。
如果你问我2小时后我会告诉你它是12点钟。
除非你问我,否则我不会一直告诉你时间。
答案 2 :(得分:3)
如果您创建了某个表的视图,那么当您更改数据或在其各自的表中插入新数据时,视图中的数据会自动更新。
但是,如果要在数据库表中添加更多列并更新其各自的视图,则更改不是自动的。
为此你可以使用' SQLYog'。这是处理视图的好工具。
答案 3 :(得分:2)
通常VIEWS会自动更新。
某些视图可以更新。也就是说,您可以在语句中使用它们 作为UPDATE,DELETE或INSERT来更新底层的内容 表。要使视图可更新,必须一对一 视图中的行与中的行之间的关系 基础表。还有一些其他构造成为 查看nonupdatable。
答案 4 :(得分:0)
是的,视图会在MySQL中自动更新;包括但不限于:
注意:更改表的结构需要重新创建视图。