您必须是视图的所有者,或者处于 DBA 状态,以便在视图上创建 INSTEAD OF 触发器。简单视图(仅基于一个表)的所有者具有 Insert 、Update 和 Delete 特权。关于触发器所有者的特权和其它用户的特权间的关系信息,请参阅执行触发操作的特权。
如果多个表在视图下面,则仅其所有者能创建触发器,但是该所有者能将视图上的 DML 特权授权给其他用户。
视图可以具有任意数量的 INSTEAD OF 触发器以用于定义每种类型的事件(INSERT 、DELETE 或 UPDATE)。
如果 SPL 的 ON EXCEPTION 语句是从 INSTEAD OF 触发器的 Action 子句发出,则它不会生效。
就像表上的触发器,INSTEAD OF 触发器的触发操作向 BIGSERIAL 、SERIAL 或 SERIAL8 列插入序列值,不能更新 SQL 通信区域结构的 sqlca.sqlerrd[1] 字段。已触发的 INSERT 操作可以成功的递增该列的序列数目,但是 sqlca.sqlerrd[1] 字段的值仍为零,而不会重置为序列值。sqlca.sqlerrd[1] 自动可以显示您通过更新的视图直接插入的新的序列值,但是该字段不能显示系列列上的 INSTEAD OF Insert 触发器的操作。