DELETE 和 INSERT 事件由那些关键字(和 ON
table 子句),但是 SELECT 和 UPDATE 事件还支持可选的
column 列表。
元素 |
描述 |
限制 |
语法 |
column |
激活触发器的列 |
必须在触发 table 中存在
|
标识符 |
owner |
table 的所有者
|
必须拥有 table |
所有者名称 |
table |
触发表的名称 |
必须在数据库中存在 |
标识符 |
如果您在同一个表上定义多个 Select 触发器,则每个触发器的 column 列表可以是唯一的或者是另一个 Select 触发器的重复。
在这两种情况下,触发表上的 SELECT 可以激活触发器:
- SELECT 语句引用 column 列表中的任何列。
- SELECT 事件定义未指定 OF column 列表规范。
(但是,接下来的部分描述可能影响 SELECT 语句是否激活 Select 触发器的其它情况。)
无论它指定 column 列表中的一列还是激活多列,触发 SELECT 语句都只激活 Select 触发器一次。
Select 触发器的操作不能在触发表上包含 UPDATE 、INSERT 或 DELETE 。Select 触发器的操作可以在不是触发表的其它表上包含 UPDATE
、INSERT 或
DELETE 操作。以下示例在表的一列上定义 Select 触发器:
CREATE TRIGGER mytrig
SELECT OF cola ON mytab REFERENCING OLD AS pre
FOR EACH ROW (INSERT INTO newtab VALUES('for each action'));
您不能对视图上的 INSTEAD OF 触发器指定 SELECT 事件。