本文概述
- 参数
- 局限性
- Oracle AFTER触发器示例
句法
CREATE [ OR REPLACE ] TRIGGER trigger_name
AFTER INSERT or UPDATE or DELETE
ON table_name
[ FOR EACH ROW ]
DECLARE
-- variable declarations
BEGIN
-- trigger code
EXCEPTION
WHEN ...
-- exception handling
END;
参数 或替换:它是一个可选参数。如果触发器已经存在, 则用于重新创建触发器。它使你无需使用DROP TRIGGER语句即可更改触发器定义。
trigger_name:它指定要创建的触发器的名称。
AFTER INSERT或UPDATE或DELETE之后:指定执行INSERT或UPDATE或DELETE操作后将触发该触发器。
table_name:它指定要在其上执行触发操作的表的名称。
局限性
- 无法在视图上创建AFTER触发器。
- 你无法更新OLD值。
- 你只能更新NEW值。
CREATE TABLE"SUPPLIERS"
( "SUPPLIER_ID" NUMBER, "SUPPLIER_NAME" VARCHAR2(4000), "SUPPLIER_ADDRESS" VARCHAR2(4000)
)
/
你可以使用以下CREATE TRIGGER查询来创建AFTER INSERT或UPDATE或DELETE触发器:
CREATE OR REPLACE TRIGGER"SUPPLIERS_T2"
AFTER
insert or update or delete on "SUPPLIERS"
for each row
begin
when the person performs insert/update/delete operations into the table.
end;
/
ALTER TRIGGER"SUPPLIERS_T2" ENABLE
/
此处的触发器名称为” SUPPLIERS_T2″ , 并且在对表” 供应商” 执行插入, 更新或删除操作后将其触发。
文章图片
推荐阅读
- Oracle使用别名
- 如何在Oracle中使用注释()
- 如何在Oracle中检查约束()
- Oracle怎么更改密码()
- Oracle Apps DBA R12.2 Syllabus
- 编程语言|甲骨文Java 14来啦!
- Oracle NoLogging Append 方式减少批量insert的redo_size
- oracle 从一张表的数据复制到另一张表中mapper.xml
- SQL|SQL 行转列 列转行 Oracle转置函数函数pivot、unpivot 解决wm_concat 没有排序