假设我创建了updatable view
:
CREATE VIEW OFFICEINFO AS
SELECT OFFICE, CITY, REGION
FROM OFFICES
问题:
OFFICEINFO
是否会反映更改
OFFICES
?OFFICES
表上是否有预定义的触发器?view
和table
之间进行同步? 答案 0 :(得分:1)
对于oracle
数据库,请快速浏览一下:
是
否triggers
,您可以将view
想象为指针到table
。它实时反映表格数据,只存储查询
不,但您可以使用materialized view
替代。
Pro :您可以将view
用作表格数据中的聚合器(如果使用连接,则使用表格),它不会占用数据库中的空间, con :如果更改table / s结构,视图将在重新编译之前变为无效。
答案 1 :(得分:1)
你似乎对观点感到困惑。视图只是一堆SQL代码,它在运行时插入查询。传统编程语言中最接近的等价物是宏。
因此,该视图并不是作为一个单独的实体存在(下面有一个例外)。每次引用视图时,定义视图的代码都会插入到查询中。因此,视图始终显示表的最新更改,而不使用触发器或其他机制。
唯一的例外是物化视图。并非所有数据库都支持这些但是那些允许将视图实例化为表的方法。数据库本身负责同步。您的问题与物化观点无关。它们在某些情况下非常有用。
答案 2 :(得分:0)
我希望你正在研究SQL
我建议您阅读this以便更好地理解。