PL/SQL学习笔记-触发器

简介: 一:语句级触发器语句级触发器是指当执行DML操作时,以语句为单位执行的触发器(注意与下面提到的行级触发器比较)先看代码 create or replace trigger xland_trigger before insert or update or delete on labor.

一:语句级触发器
语句级触发器是指当执行DML操作时,以语句为单位执行的触发器
(注意与下面提到的行级触发器比较)
先看代码

create or replace trigger xland_trigger
before insert
or update
or delete
on labor.xland
begin
if(to_char(sysdate,'DAY') in ('星期六','星期日'))
or (to_char(sysdate,'HH24') not between 8 and 18) then
raise_application_error(-20001,'不是上班时间');
end if;
end;


执行以下代码测试

insert into labor.xland (xland.title,xland.content,xland.state) values ('123','234',3);

ORACLE抛出异常
image 

二:行级触发器
行级触发器是指执行DML操作时,以数据行为单位执行的触发器,每一行都执行一次触发器
先看代码:

create or replace trigger xland_trigger
before insert 
on labor.xland
for each row
begin
   if :new.title = 'xland' then
      insert into labor.xland (xland.title,xland.content,xland.state) values ('123','cha2',3);
   end if;
end;

执行以下代码测试

insert into labor.xland (xland.title,xland.content,xland.state) values ('xland','cha1',3);


结果:
image 
在行级触发器中可以对列的值进行访问(很重要!)
列名前加   :old.    表示变化前的值
列名前加   :new.    表示变化后的值
在when子句中不用冒号。

三:instead of 触发器(视图上的触发器)
先看代码

create or replace trigger t_xland
instead of insert
on v_xland
for each row
begin
insert into xland (title,content,state) values ('1','1',1);
end;


其实就是取代了insert语句和其他触发器没什么大区别

四:删除触发器

drop trigger t_xland;
目录
相关文章
|
28天前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
1月前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。
|
11月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
148 2
|
SQL Oracle 关系型数据库
SQL与PL/SQL:数据库编程语言的比较
【8月更文挑战第31天】
409 1
|
SQL 存储 数据管理
深入理解SQL中的触发器
【8月更文挑战第31天】
503 0
|
存储 SQL 数据库
SQL 语言:存储过程和触发器
SQL 语言:存储过程和触发器
277 6
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
|
SQL 数据库 Perl
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
968 0

热门文章

最新文章