📜  PL SQL触发器(1)

📅  最后修改于: 2023-12-03 15:33:42.746000             🧑  作者: Mango

PL/SQL触发器

PL/SQL触发器是一种数据库对象,可以在预定义数据更改事件发生时自动运行。当其中一个事件发生时,触发器将被激活并执行定义的代码块。

常见事件

触发器可与以下事件关联:

  • INSERT – 向表中插入新行时触发
  • UPDATE – 在表中更新现有行时触发
  • DELETE – 从表中删除行时触发
语法

触发器的基本语法如下:

CREATE OR REPLACE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON table_name
FOR EACH ROW
DECLARE
  --定义变量和常量
BEGIN
  --执行的代码
END;
  • trigger_name:触发器的名称
  • BEFORE/AFTER:指示触发器应该在事件发生之前或之后激活
  • INSERT/UPDATE/DELETE:指示与触发器相关联的事件类型
  • table_name:触发器所在的表名
  • FOR EACH ROW:指示每一行的数据更改都会激活触发器
例子

下面是一个在Insert事件时自动向学生表添加一条记录的触发器。

CREATE OR REPLACE TRIGGER trg_add_student
BEFORE INSERT
ON student
FOR EACH ROW
DECLARE
BEGIN
  INSERT INTO log_table (message) VALUES ('新学生已加入学生表');
END;
使用限制
  • 触发器不能直接访问其他表上的数据。
  • 在执行触发器代码时,除了::NEW 和 :OLD,没有别的会话变量可用。
  • 触发器不能在 SELECT 语句上定义。
总结

PL/SQL触发器是一种功能强大的数据库对象,可在预定义事件发生时自动运行。通过与事件相关联的代码,触发器可以访问和修改表中的数据,并执行必要的业务逻辑。在设计数据库时,触发器可以是一种有用的工具,可以自动化几乎所有的数据操作。