现在有一张表 A 里面有  一个 字段type(1,2)
现在建立2张视图 
 create view b as select * from a where type=1
 create view c as select * from a where type=2
但 现在我 A表中的 某个 type=1 的 其他信息被 改变的时候
 问题1:视图B 一定是被 重新生成(请问 生成的原理是对单行重新生成 还是说 所有都生成如果但数据有 10W条的是否 就重新生成一次? 目前是否有单条生成或者有其他跟好的方式 ??请教。)
问题2:视图C在这次A表 type=1的被更新时 C表是否也会更新???

解决方案 »

  1.   

    视图只是视图。它不存储任何记录。所以说当你对原表中的记录进行操作的时候。VIEW本身这个对象什么都没变。只不过当你再去 select * from view_b 的时候,MYSQL会把 view_b 中的SQL语句拿出来再执行一遍,然后把数据给你而已。当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  2.   

    视图只是复杂select语句的简洁化快捷方式。
    比如有个文件名称是:
    我这个表好复杂文件名很长路径层次也很多一时半会不好找光打字都好半天.txt然后我们可以在桌面上建立快捷方式指向这个文件:
    长名文本.lnk长名文本.lnk内本身是不含数据的,文本文件内容更新也和快捷方式没关系,但是运行快捷方式就能看到最新版本的文件内容。