博客
关于我
Oracle触发器
阅读量:796 次
发布时间:2023-02-26

本文共 1376 字,大约阅读时间需要 4 分钟。

Oracle触发器详细教程

创建学生表

首先,我们需要创建一个学生表来存储学生信息:

CREATE TABLE students (
name VARCHAR2(12),
birthday DATE,
age NUMBER,
sales NUMBER
);

创建触发器

接下来,我们创建一个触发器,当向学生表中插入数据时,自动执行某些操作。在这个例子中,触发器会打印出插入的数据信息。

CREATE OR REPLACE TRIGGER trg_stu_insertAFTER
INSERT ON students
FOR EACH ROW
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('Name:' || :new.name);
DBMS_OUTPUT.PUT_LINE('Birthday:' || :new.birthday);
DBMS_OUTPUT.PUT_LINE('Age:' || :new.age);
DBMS_OUTPUT.PUT_LINE('Sales:' || :new.sales);
DBMS_OUTPUT.PUT_LINE('触发器已经执行成功');
END

说明

在这个触发器中,:new对象用于引用插入的新记录,通过:new.columnName可以访问新记录的每个字段值。我们使用了DBMS_OUTPUT.PUT_LINE函数来输出信息,因此在使用前需要执行以下命令:

SET SERVEROUTPUT ON;

插入数据

执行以下命令时,触发器会自动启动并打印出插入信息:

INSERT INTO students VALUES('Jim', SYSDATE, 23, 12341);

触发器的灵活性

如果需要在INSERTUPDATE操作时都触发触发器,可以在CREATE TRIGGER语句中使用OR UPDATE

CREATE OR REPLACE TRIGGER trg_stu_Insert_UpdateAFTER
INSERT OR UPDATE ON students
FOR EACH ROW
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('触发器插入和更新已经执行成功');
END

增加删除操作

如果需要在DELETE操作时也触发触发器,可以将DELETE添加到INSERT OR UPDATE中:

CREATE OR REPLACE TRIGGER trg_stu_DDLAFTER
INSERT OR UPDATE OR DELETE ON students
FOR EACH ROW
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('触发器插入、更新和删除已经执行成功');
END

注意事项

  • 触发器执行顺序:触发器在INSERTUPDATEDELETE操作之后执行。
  • 触发器名称:确保触发器名称唯一,避免与其他触发器冲突。
  • 触发器依赖性:如果依赖表或列的结构发生更改,触发器可能失效,需要重新创建。
  • 通过以上步骤,您可以轻松创建并管理Oracle触发器,自动执行所需操作。

    转载地址:http://rrpfk.baihongyu.com/

    你可能感兴趣的文章
    oracle数据库零碎---Oracle Merge 使用,表中存在数据就修改,没有数据自动添加
    查看>>
    Oracle数据库验证IMP导入元数据是否会覆盖历史表数据
    查看>>
    oracle数据插入表,oracle同时向多表插入数据
    查看>>
    oracle数据类型和对应的java类型
    查看>>
    【C++进阶篇】——string类的使用
    查看>>
    Oracle未开启审计情况下追踪表变更记录
    查看>>
    Oracle条件查询
    查看>>
    Oracle查看数据库会话连接
    查看>>
    Oracle查询前几条数据的方法
    查看>>
    oracle树形查询 start with connect by
    查看>>
    oracle毕业论文题目,历届毕业论文申报题目大全.doc
    查看>>
    oracle求助---win7下oracle配置相关疑问Starting Oracle Enterprise Manager 10g Database Control ...发生系统错误 5。
    查看>>
    Oracle流程控制语句
    查看>>
    oracle深度解析检查点
    查看>>
    Oracle游标
    查看>>
    oracle游标数最大数,Oracle 最大连接数 最大游标数
    查看>>
    oracle用户改名
    查看>>
    oracle用户解压不了,PLSQL developer 连接不上64位Oracle 的解决方法
    查看>>
    oracle用户解锁
    查看>>
    Oracle用游标删除重复数据
    查看>>