温馨提示×

oracle触发器怎么创建及使用

小亿
85
2023-12-18 10:34:04
栏目: 云计算

创建触发器的语法如下:

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语句插入数据后,触发器会自动执行更新操作,更新修改时间。

0