本文共 1376 字,大约阅读时间需要 4 分钟。
首先,我们需要创建一个学生表来存储学生信息:
CREATE TABLE students ( name VARCHAR2(12), birthday DATE, age NUMBER, sales NUMBER);
接下来,我们创建一个触发器,当向学生表中插入数据时,自动执行某些操作。在这个例子中,触发器会打印出插入的数据信息。
CREATE OR REPLACE TRIGGER trg_stu_insertAFTER INSERT ON students FOR EACH ROWDECLAREBEGIN 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); 如果需要在INSERT和UPDATE操作时都触发触发器,可以在CREATE TRIGGER语句中使用OR UPDATE:
CREATE OR REPLACE TRIGGER trg_stu_Insert_UpdateAFTER INSERT OR UPDATE ON students FOR EACH ROWDECLAREBEGIN 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 ROWDECLAREBEGIN DBMS_OUTPUT.PUT_LINE('触发器插入、更新和删除已经执行成功');END INSERT、UPDATE和DELETE操作之后执行。通过以上步骤,您可以轻松创建并管理Oracle触发器,自动执行所需操作。
转载地址:http://rrpfk.baihongyu.com/