Oracle修炼路程--触发器

Oracle 触发器的使用(带案例详解) 4.如何DML触发器?本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!** 阅读详情

概念:
与表相关联的PLSQL程序,当执行DML(增删改)自动执行触发器;

创建语法:
create or replace trigger 触发器名
before|after—在DML之前或者之后;
delete|insert|update [of 列名]–DML语句
on 表名----操作某个表
for each row----对某行数据进行操作
。。。。。plsql代码

无论修改多少行,触发器只执行一次
原因:默认是语句级触发器,作用于表,只执行一次;

类型:
1 语句级触发器:

2 行级触发器:
作用于每一行,每满足一次条件,都执行一次触发器;可以执行多次。

举例

--创建触发器logupdate
create or replace trigger logupdate
before
update
on stu
declare
begin
dbms_output.put_line('Finish update!!');
end;

在这里插入图片描述

create or replace trigger loginsert
before
insert
on stu
declare
begin
DBMS_OUTPUT.PUT_LINE('Finish insert!!');
end;

在这里插入图片描述

create or replace trigger LOGDELETE
BEFORE DELETE
ON STU
DECLARE
BEGIN
dbms_output.put_line('Finish delete');
END;

在这里插入图片描述

--行级触发,update一次,触发一次!
create or replace trigger logeachrow
BEFORE INSERT 
ON STU 
FOR EACH ROW
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('每行执行成功!!');
END;

在这里插入图片描述

删除触发器

drop trigger trigger_name;
在这里插入图片描述

--禁止在非工作时间插入员工信息,非工作时间周四,周六,周日 ,除去9:00--18:00;
create or replace trigger securityStu
before insert
on stu
begin
--校验,不正常
if to_char(sysdate,'day') in ('星期六','星期日','星期四') or to_number(to_char(sysdate,'hh24')) not between 9 and 18
then raise_application_error(-20001,'禁止非工作时间插入员工信息!');
end if;
end;

在这里插入图片描述
new和old两个特殊变量
:new --引用最新的列值;
:old --引用以前的列值;
这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.
且update语句两个都有,而insert只有:new ,delete 只有:old;

create or replace trigger checkSalary
before update
on emp
for each row
declare
begin
if :new.sal<:old.sal then RAISE_APPLICATION_ERROR(-20000, '涨后工资不能小于涨前工资');
end if;
end;

在这里插入图片描述
数据校验
raise_application_error中编号的范围:-20000到-20999;

《Oracle系列》Oracle详细入门教程 Docker安装Oracle,Oracle常用函数,Oracle触发器 阅读详情

相关推荐

MATLAB实战:手把手教你搭建构网逆变器同步稳定性仿真模型(附避坑指南)

本文详细介绍了如何在MATLAB/Simulink平台上搭建构网逆变器同步稳定性仿真模型,涵盖从基础模块配置到虚拟同步机控制实现的完整流程。针对电力电子工程师常见的控制参数整定困难、仿真结果偏差等问题,提供了LCL滤波器谐振抑制、虚拟惯量优化等关键技术解决方案,并附有避坑指南和工程实践技巧,助力研究者高效完成仿真建模。

weixin_29051193的博客 299

Oracle触发器

触发器的本质是一个存储过程,顾名思义,发生特定事件时Oracle才会执行触发器中的代码(和java-里面的监听器有点相似);特定事件:是执行更新的DML和DDL语句;触发器不能显式(手动)被调用;触发器的组成部分触发器语句(事件):定义激活触发器的 DML 事件和 DDL 事件;触发器限制(when):执行触发器的条件,该条件必须为真才能激活触发器;触发器操作(主体):就是触发器被触发以后具体想表达的事件,在 begin 和 end 之间的 sql。触发器的分类After触发器和。

weixin_73817220的博客 3505

构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)

通过欧洲航天官网获取哨兵数据的产品,通过SNAP软件进一步得到SAR图像(以导出图片为例)

xiaoxTai的博客 6183

Oracle数据库 触发器

文章目录一、触发器的定义二、触发器的分类三、触发器的功能四、触发器的语法五、触发器的使用案例案例1:向emp1表中插入一条数据后输出 欢迎加入 语句案例2:数据校验,在周四这一天不允许向emp1表中插入/更新数据案例3:创建触发器,记录表的删除数据案例4:创建触发器,记录表的更新数据案例5:创建触发器,在删除某条数据之前先在记录表插入该条数据 一、触发器的定义 触发器:当某个条件成立的时候,触发器中所定义的语句就会被自动执行。 二、触发器的分类 触发器分为语句级触发器和行级触发器。 语句级触发器:在某些语句

小曹同学的博客 4281

大模型训练流程(四):PPO强化学习实战与调优指南

本文详细解析了大模型训练中PPO强化学习的实战应用与调优技巧,涵盖RLHF核心原理、PPO算法实现及显存优化策略。通过具体案例和代码示例,指导开发者有效提升模型回答质量与安全性,避免常见训练陷阱。

weixin_29051811的博客 438

基于PLC的全自动洗衣机控制系统+控制程序

本设计使用PLC控制系统替换了传统的继电器控制系统,实现了全自动洗衣机在硬件方面的提升,丰富了全自动洗衣机在软件方面的功能,提高了全自动洗衣机的洗衣效率,基本可以满足用户的洗衣需求。

zzzz114231的博客 8957

Oracle中的触发器

Oracle中的触发器

m0_71406734的博客 1万+

【AI大模型应用开发】【LangChain系列】实战案例6:利用大模型进行文本总结的方法探索,文本Token超限怎么办?

假设有一组文档(PDF、Notion页面、客户问题等),你想要总结内容。可以利用大模型来帮你。今天来系统看下利用大模型来对文本进行总结的方法,以LangChain的使用为例。

同学小张的博客 3749

oracle update触发器

语法create [or replace] tigger 触发器名 触发时间 触发事件on 表名[for each row]begin pl/sql语句end  其中:触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。触发时间:指明触发器何时执行,该值可取:before:表示在数据库动作之前触发器执行;after:表示在数据库动作之后触发器执行。触发...

qq_38999509的博客 1万+

Python爬虫实战:高效爬取CNKI知网文献数据的技术解析

本文将详细介绍如何使用Python最新技术构建一个高效的CNKI知网文献爬虫系统。我们将从爬虫基础知识讲起,逐步深入到高级反反爬技术、分布式爬取、智能解析等前沿内容。文章包含完整的代码实现,涵盖请求模拟、数据解析、持久化存储等关键环节,并特别针对CNKI的反爬机制提供解决方案。通过本文,读者将掌握构建专业级学术文献爬虫的全套技术栈。关键词:Python爬虫、CNKI爬取、反反爬技术、文献数据挖掘、Scrapy框架本文详细介绍了如何使用Python最新技术构建CNKI知网文献爬虫。

2201_76125261的博客 2075

面向 ABAP 开发者的 Joule 实战:把 AI 带进 Eclipse 的每一次敲键

本文介绍了SAP推出的ABAP开发AI工具套件Joule for developers,重点解析了其代码补全、自然语言对话、代码解释、测试生成等功能如何融入ABAP Cloud开发全流程。文章提供了具体的使用场景和操作示例,包括RAP应用开发中的建模辅助、代码理解、测试生成等环节,并分享了实用的提示词模板。同时强调了启用授权等实施细节,帮助开发者将AI能力转化为实际生产力而非演示效果。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 462

oracle--触发器

触发器一、概念数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据库操作语句(insert,update,delete)在指定的表上发出时,oracle自动地执行触发器中定义的语句序列。二、触发器类型语句级触发器:(针对表) 在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行。行级触发器(for each row)(针对行): 触发语句作用的每一条记录都被触发

hongcaixia的博客 512

巧妙解决网页弹窗重复出现问题

本文探讨了网页弹窗关闭后刷新重现的问题及解决方案。通过分析原生JavaScript实现的弹窗代码存在的缺陷,提出了使用jQuery改进的方法。关键点包括:利用event.preventDefault()阻止默认行为避免刷新,采用jQuery的hide("slow")方法实现优雅的关闭动画,确保关闭状态持久化。改进后的方案既解决了弹窗重复出现的问题,又提升了用户体验,为网页弹窗交互提供了更优的实现方式。文中提供了完整的HTML、CSS和JavaScript代码示例,便于开发者直接应用。

2501_90323865的博客 183

Oracle修炼路程--视图

视图概念: 视图属于数据库对象(包括表、视图、序列、索引、同义词、触发器)之一, 视图是一个虚表,建立在表的基础之上,可以来自单个表或者多个表。 视图创建 创建视图的语法: create view myview as select 。。。from。。。emp with check option; --举例创建视图myview SQL> create view myview as select...

Python_Newer的博客 290

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Oracle 触发器详解

可以在触发器体的语句块中使用 inserting、updating、deleting谓词,这些谓词会返回相应的DML操作的布尔值,如果为true,则表示执行了相应的insert、update、delete操作。new谓词:执行后的字段的值的名称,比如update一个表时,使用:new.columnname是指执行 update操作之后的列的值。old谓词:执行前的字段的值的名称,比如update一个表时,使用:old.columnname是指执行update操作之前的列的值。

KevinChen2019的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Oracle-行级触发器&多表关联update

oracle行级触发器&多表关联update

qq_43692297的博客 2040

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Oracle系列十四:触发器

触发器(trigger)是一种数据库对象,当一个特定的事件发生时,会自动执行在数据库表上的某些操作。本文详细介绍了Oracle触发器的基础概念、语法和使用方法。

聚集机器学习、信息安全 6751

oracle 触发器更新视图,关于UPDATE触发器的详细介绍

UPDATE触发器UPDATE 触发器在 UPDATE 语句执行之前或之后执行。需要知道以下几点:1.在 UPDATE 触发器代码中,你可以引用一个名为 OLD 的虚拟表访问以前( UPDATE 语句前)的值,引用一个名为 NEW 的虚拟表访问新更新的值;2.在 BEFORE UPDATE 触发器中, NEW 中的值可能也被更新(允许更改将要用于 UPDATE 语句中的值);3.OLD 中的值全都...

weixin_36256978的博客 1881

oracle触发器

类型行级触发器: FOR EACH ROW 影响的每一行都会执行触发器 语句级出发器 默认的模式,一句话才执行一次触发器 触发器不能嵌套,不能含有事务控制语句 何时触发 Before:条件运行前 After:条件运行后 Instead of:替代触发,作用在视图上 创建触发器实例一1.创建一个与scott下的emp表结构一样的表emp_his,并不添加数据create table emp_hi

Important Thing First 482

数据库篇--update触发器

update触发器使用

m0_69920956的博客 6409

sql触发器使用及实例

---触发器一种特殊的存储过程,触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用 --触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器 --SQLServer2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多...

weixin_34326558的博客 270

oracle insert 当前时间_Oracle触发器原来也可以这么玩,学到了吗?

1.前言项目驱动学习是一件行之有效的方式。最近项目中确实遇到了很多问题。当然按照之前的处理方式也未尝不可,不过想到以后的维护感觉还是想办法在改进一下吧。这次,我们主要讨论一下Oracle触发器在实际工作中的应用。同时借组SqlDevelop工具分享一下编写触发器过程的调式技巧(之前一编译就出现编译警告就无从下手)。当然,我还是初次接触调试,方法虽不尽人意,但是也不失一种方法。2.业务描述对于有父子...

weixin_39642981的博客 513

Oracle触发器 响应表的特定列更新

【问题】你想根据一张表中特定列的更新自动更新另外一张表中的一些特定值。举例来说,假设管理部门决定改变组织结构中的一些职位。一位新经理将出任其中的一个经理职位,那么就需要把一部分雇员信息与这位经理信息相关联。你需要想一种办法更新这些雇员的记录,让它们把对应的经理信息从前任改成现任。

Penho的博客 4288

oracle 触发器update 出现ORA-04091: 表 **发生了变化, 触发器/函数不能读它

出现这种错误的原因是:如果一个触发器定义在表a上,那么在触发器被触发的过程中 表a 是被锁定的,就连读取都不可以。 错误实例: create or replace trigger checkUpdateExpertCertificate   before  update    on  expert_certificate  for each row declare        n

江城宴的博客 1万+

Oracle(39)什么是触发器(Trigger)?如何创建触发器?

触发器是数据库中实现自动化操作和数据完整性约束的重要工具。通过定义触发事件和触发时间,可以在特定的数据库操作发生时自动执行预定义的逻辑。合理使用触发器可以简化代码、增强数据一致性,但也需要注意性能影响和调试困难等问题。在实际开发中,结合业务需求和性能考虑,选择合适的触发器策略。

qq_43012298的博客 1077
上一篇: Oracle修炼路程--存储过程/存储函数
下一篇: Oracle修炼路程--DBCA
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值