【PL/SQL】触发器初识

一、触发器

1、概述
触发器是存储在服务器中的程序单元,不能够直接被调用,只有触发条件成立时,才能执行;

2、触发事件
①insert,update,delete,select;
②create,alter,drop;
③logon,logoff;
④startup/shutdown;

3、触发时间
①before;
②after;

4、触发级别
①行触发:每一行都有可能触发;
②语句触发:一个sql语句只可能触发一次;

5、创建触发器

create or replace TRIGGER demo_trigger
AFTER DELETE
on demo_table
BEGIN
    IF DELETING THEN
        DBMS_OUTPUT.PUT_LINE('删除成功!');
    END IF;
END;

6、注意
创建触发器的类型关键字是TRIGGER,触发时间可以选BEFORE或者AFTER,触发动作是DELETE(也可以是
INSERT,UPDATE,SELECT等),作用对象用on来表示,后面接表名(也可以在表名前加上数据库名,在
中间用.隔开);判断条件是DELETING;

二、维护触发器

创建触发器后,用户不能调用触发器,但是可以对触发器进行查看,修改;
1、修改触发器
使用replace 或者在创建触发器的时候使用create or replace关键字;

2、重新编译触发器
ALTER TRIGGER demo_trrigger compile;

3、查看触发器脚本
select Object_name from user_objects where object_type =’TRIGGER’;

4、查看触发器具体的脚本
select * from user_source where name=’TRIGGER’;

5、禁用和启动触发器
5.1、禁用触发器
ALTER TRIGGER demo_trrigger DISABLE;

5.2、启动触发器
ALTER TRIGGER demo_trrigger ENABLE;

6、删除触发器
DROP TRIGGER demo_trrigger;

7、触发器和存储过程,自定义函数的区别;
触发器没有参数,没有返回值,触发执行,不能由用户直接调用;触发器的作用是能够实现事务
的一致性,能够对数据库的表进行级联修改等;

猜你喜欢

转载自blog.csdn.net/River_Continent/article/details/81333276