oracle触发器怎么创建及使用

创建触发器的语法如下:

CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE} [OF column_name]
ON table_name
[REFERENCING OLD AS old NEW AS new]
[FOR EACH ROW]
[WHEN (condition)]
DECLARE
declaration_section
BEGIN
executable_section
EXCEPTION
exception_section
END;

其中:

trigger_name:触发器的名称。
BEFORE/AFTER/INSTEAD OF:触发器的执行时间。
INSERT/UPDATE/DELETE:触发器的事件类型。
OF column_name:触发器只对指定列的操作触发。
table_name:触发器所属的表名。
REFERENCING OLD AS old NEW AS new:用于在触发器中引用旧值和新值。
FOR EACH ROW:表示触发器对每一行数据都执行。
WHEN (condition):触发器执行的条件。
declaration_section:声明变量和游标。
executable_section:执行的SQL语句。
exception_section:处理异常的代码。

创建了触发器后,可以使用INSERT、UPDATE、DELETE语句来触发触发器的执行。

例如,创建一个在每次插入数据后自动更新修改时间的触发器:

CREATE OR REPLACE TRIGGER update_modify_time
AFTER INSERT ON table_name
FOR EACH ROW
BEGIN
UPDATE table_name
SET modify_time = SYSDATE
WHERE id = :new.id;
END;

使用INSERT语句插入数据后,触发器会自动执行更新操作,更新修改时间。

阅读剩余
THE END