如果一个视图的列来自一个基表,可以通过对该视图执行insert、update、delete等DML操作,实现对基表的更新;如果一个视图的列来自多个基表,可以通过在该视图上建立一个instead of trigger;从而通过trigger的方式实现“在视图上做insert、update、delete等DML操作,实现对多个基表的更新”。我现在想问的是,对于一个列来自多个基表的视图,怎样通过某种机制(trigger或其他什么方法,但最好是实时触发的),实现对视图数据的实时监测,若视图某列数据有变化,则触发某操作?(物化视图是不是可以做到这点那?)谢谢大家。

解决方案 »

  1.   

    多基表的视图也可以创建TRIGGER啊
      

  2.   


    Only INSTEAD OF triggers can be created on a view.而INSTEAD OF trigger的使用,正如我上面所说,是用来对多基表的联接视图做DML。我现在的问题是,怎么样在视图数据发生变动时(也即基表数据发生变动时,因为视图展现的就是基表的数据嘛),在视图上通过某种机制触发某种操作,而不是怎么样在视图上做DML。