我是靠谱客的博主 阳光微笑,最近开发中收集的这篇文章主要介绍Oracle数据库学习笔记(二十六)--触发器的概念和分类触发器的概念触发器的分类在触发器中触发语句与伪记录变量的值学习笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

触发器的概念

触发器就是制定一个规则,当我们做增删改操作的时候,只要满足该规则,自动触发,无需调用。

触发器的分类

  1. 语句级触发器:不包含有 for each row 的触发器。
  2. 行级触发器:包含有 for each row 的就是行级触发器。

加 for each row 是为了使用 :old 或者 :new 的对象/一行记录。

在触发器中触发语句与伪记录变量的值

触发语句:old:new
Insert所有字段都是空 ( null )将要插入的数据
Update更新以前该行的值更新后的值
Delete删除以前该行的值所有字段都是空 ( null )

学习笔记

1、插入一条记录,输出一个新员工入职【语句级触发器】

create or replace trigger t1
after
insert
on person
declare

begin
  dbms_output.put_line('一个新员工入职');
end;

触发t1

INSERT INTO person
VALUES (1, '小红');

COMMIT;

SELECT *
FROM person;

2、不能给员工降薪【行级别触发器】

create or replace trigger t2
before
update
on emp
for each row
declare

begin
  if :old.sal>:new.sal then
     raise_application_error(-20001, '不能给员工降薪');
  end if;
end;

自定义异常:raise_application_error(-20001~-20999之间, ‘错误提示信息’);

触发t2

SELECT *
FROM emp
WHERE empno = 7788;

UPDATE emp
SET sal = sal - 1
WHERE empno = 7788;

COMMIT;

最后

以上就是阳光微笑为你收集整理的Oracle数据库学习笔记(二十六)--触发器的概念和分类触发器的概念触发器的分类在触发器中触发语句与伪记录变量的值学习笔记的全部内容,希望文章能够帮你解决Oracle数据库学习笔记(二十六)--触发器的概念和分类触发器的概念触发器的分类在触发器中触发语句与伪记录变量的值学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部