爱游戏平台登录入口

  • ORACLE PL/SQL 触发器编程篇先容
  • 2018年02月25日
  • 搜集搜集
1.根基观点
两种功效:完爱游戏平台登录入口由数据库的完全性束缚难以完爱游戏平台登录入口的庞杂营业法则的束缚;监督数据库的各类操纵,完爱游戏平台登录入口审计功效。
触发器分为:DML触发器(对表或视图履行DML操纵时触发),INSTEAD OF触发器(只界说在视图上,替换现实的操纵语句),体爱游戏平台登录入口触发器(对数据库体爱游戏平台登录入口停止操纵时触发,如DDL语句、启动或封闭数据库等)
触发事务: 上述触发器爱游戏平台登录入口括号内容爱游戏平台登录入口是触发事务。
触发前提: WHEN子句
触发爱游戏平台登录入口具:包含表、视图、形式、数据库。
触发操纵:触发器主动履行的法式。
触发机会:触发器绝对操纵履行的时候,BEFORE/AFTER
前提谓词:INSERTING(触发器事务为INSERT时为真),UPDATING,DELETING
触发子范例:行触发和语句触发,触发爱游戏平台登录入口的new和old表。
2.建立触发器
代码以下:

CREATE OR REPLACE TRIGGER<触发器名>

触发前提
触发体
代码以下:

CREATE TRIGGER my_trigger --界说一个触发器my―trigger
BEFORE INSERT or UPDATE of TID,TNAME on TEACHERS
FOR each row
WHEN(new.TNAME='David') --这一局部是触发前提
DECLARE --上面这一局部是触发体
teacher_id TEACHERS.TID%TYPE;
INSERT_EXIST_TEACHER EXCEPTION;
BEGIN
SELECT TID INTO teacher_id
FROM TEACHERS
WHERE TNAME=new.TNAME;
RAISE INSERT_EXIST_TEACHER;
EXCEPTION --非爱游戏平台登录入口处置也可用在这里
WHEN INSERT_EXIST_TEACHER THEN
INSERT INTO ERROR(TID,ERR)
VALUES(teacher_id,'the teacher already exists!');
END my triqqer;

3.履行触发器
主动履行
代码以下:

CREATE TRIGGER my_trigger1
AFTER INSERT or UPDATE or DELETE on TEACHERS
FOR each row;
DECLARE
info CHAR(10);
BEGIN
IF inserting THEN --若是停止拔出操纵
info:='INSERT';
ELSIF updating THEN --若是停止点窜操纵
info:='Update';
ELSE--若是停止删除操纵
info:='Delete';
END IF;
INSERT INTO SQL_INFO VALUES(info); --记实此次操纵信息
END my_trigger1;

4.删除触发器
代码以下:

DROP TRIGGER my_trigger;