Oracle触发器的用途

0.DDL和DML

DDL:data manipulation language,数据操作语言,主要命令有select,update,insert,delete,主要用于对数据库中的数据进行操作

DDL:data definition language,数据定义语言,主要命令有create,alter,drop,主要用于定义和修改表

DCL:data contral language,数据控制语言,主要命令有grant,rollback,commitdeng,主要用于授权或收回访问数据库的某种权限,并控制数据库操事务发生的时间及效果,对数据库进行监视。

1.触发器的用途

(1)完成表的变更校验,当表中的数据发生insert、update或者delete等DML操作时,提供验证逻辑,验证更改数据的正确性、检查完整性约束、记录事件日志等。

(2)自动数据库维护,使用系统级的触发器,可以在数据库系统启动或者退出时,通过触发器完成系统初始化和清楚操作。

(3)控制数据库管理活动,使用触发器精细管理和控制数据库中的数据库管理活动,若删除或修改表等DDL操作,保证DDL操作的检查。

2.触发器的分类

根据触发的实际和影响的行数,可以分为4类

  • 行触发器和语句触发器
  • before触发器和after触发器
  • instead of触发器
  • 系统事件触发器和用户事件触发器,数据库启动,服务器错误消息事件触发属于系统事件;用户登录或退出,执行DDL或DML语句属于用户事件

 根据触发器所创建的语句及影响的对象不同,可分为3类

  • DML触发器,表的增、删、改,可以是行触发器、语句触发器、before触发器、after触发器
  • 系统触发器,对数据库实例活某个用户模式进行操作时的触发器,可以使数据库系统触发器和拥护触发器
  • 替代触发器,对视图进行操作时定义的触发器

3.触发器的写法

CREATE [OR REPALCE] TRIGGER trigger_name

[BEFORE | AFTER | INSTEAD OF] triggering_event

[referencing_clause]

[WHEN trigger_condition]

[FOR EACH ROW]

trigger body

  • trigger_name:触发器的名称
  • triggering_event:引发触发器的事件,如对一个表或视图进行DML操作
  • referencing_clause:替换名字用
  • trigger_condition:用来指定触发的条件,当触发器定义中包含WHEN语句时,将先求值,当值为True时,才执行触发器
  • FOR EACH ROW:指定该字句表示创建的是行级的出尕其,否则创建的是语句级的触发器
  • trigger_body:指定触发器的执行代码区,是一个标准的PL/SQL块。

触发器代码不能超过32KB,过大时分隔为多个存储过程,使用CALL调用存储过程。

触发器代码只能包含DML语句,不能包含DDL语句。 

4.具体实践

(1)限制对表的更新修改

(2)实现表的自动更新

(3)提供日志记录

附:

 

 

主要是学习Oracle PL/SQL从入门到精通这本书的总结和实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring (40)Spring Cloud和Spring Boot

Spring Boot和Spring Cloud是两个在现代Java应用开发中广泛使用的项目,它们共同构成了创建云原生、微服务架构应用的强大基础。虽然它们紧密协作,但服务于不同的目的。下面,我们将深入探讨它们之间的关系,结合源码和代码示例来进行…

Java1.8全套家政上门服务+springboot+ mysql +Thymeleaf 技术架构开发,家政APP系统在线派单,师傅入驻全套商业源码

Java1.8全套家政上门服务springboot mysql Thymeleaf 技术架构开发,家政APP系统在线派单,师傅入驻全套商业源码 家政预约上门小程序的实用性? 家政预约上门小程序的实用性主要体现在以下几个方面: 一、方便快捷的预约体验&#…

尚硅谷2024新版3小时速通Docker教程

尚硅谷2024新版3小时速通Docker教程 百度网盘:https://pan.baidu.com/s/1SncgHbdJehvZspjcrrbLSw?pwd6c27

【数据结构与算法 经典例题】随机链表的复制(图文详解)

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法 经典例题》C语言 期待您的关注 ​ 目录 一、问题描述 二、解题思路 三、代码实现 1. 原链表中节点的数据拷…

采用JWT令牌和Filter进行登录拦截认证

原理描述: 1、第一次登录的时候,生成JWT令牌,并JWT令牌存放在localStorage。 localStorage.setItem(token, token); 2、每次通过axios发送请求的时候,都将这个令牌获取,并放于header中发送。 也就是JWT令牌只在登录…

PCL 抛物线回归拟合(Quadratic,二维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里仍然是最小二乘法的应用,其推导过程如下所述: 1.二次函数模型: 其中,a、b 和 c 是需要确定的参数。 2.最小二乘法 假设我们有一组数据点 ( x 1 ​ , y

大数据平台技术选型

大数据平台的技术选型是一个复杂的过程,需要考虑多种因素,如数据量、数据类型、处理速度、成本预算、团队技术能力以及未来扩展性等。以下是大数据平台技术选型的一些关键方面和常用技术: 1. 数据存储 Hadoop HDFS (Hadoop Distributed Fil…

实用软件分享---中医自学宝典(安卓)

专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…

#03 初探Stable Diffusion:理解其工作原理

文章目录 前言什么是Stable Diffusion?Stable Diffusion的核心组件1. 变分自编码器(VAE)2. Transformer模型3. 高分辨率图像合成 工作流程示例应用结论 前言 Stable Diffusion已成为AI图像生成领域的一颗新星,其能力在于根据文本提示生成高…

usb设备在主机和VMWare虚拟机中切换连接

操作:点击菜单栏虚拟机(M)>可移动设备>选择自己的usb设备>连接(断开与 主机 的连接)

【Vue】路由介绍

一、引入 思考 单页面应用程序,之所以开发效率高,性能好,用户体验好 最大的原因就是:页面按需更新 比如当点击【发现音乐】和【关注】时,只是更新下面部分内容,对于头部是不更新的 要按需更新&#xff…

上海亚商投顾:沪指震荡下跌 两市成交不足7000亿元

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整,创业板指冲高回落。车路云概念股持续活跃,万通智控、鸿泉物联、华体…

【Vue】异步更新 $nextTick

文章目录 一、引出问题二、解决方案三、代码实现 一、引出问题 需求 编辑标题, 编辑框自动聚焦 点击编辑,显示编辑框让编辑框,立刻获取焦点 即下图上面结构隐藏,下面结构显示,并且显示的时候让它自动聚焦。 代码如下 问题 “…

【Multi-Feature FAS】《Face Anti-Spoofing Based on Multi-Feature Fusion》

文章目录 原文贡献 / 相关工作作者的方法评价 原文 [1]杨敏.基于多特征融合的人脸防伪技术研究[D].武汉大学,2019. 贡献 / 相关工作 针对攻击对象存在背景依赖和非刚性运动造成的深度信息缺失问题,采用边缘信息放大差异 各种 loss 数据库 评价指标 本节将会对…

Kubernetes 容器命令行 cri-tools 安装

crictl 是一个命令行工具,用于与容器运行时接口(CRI)交互。 cri-tools 官方地址:https://github.com/kubernetes-sigs/cri-tools/releases 安装步骤: 1、拷贝并执行如下命令自动下载安装 VERSION"v1.30.0&quo…

前端的三大主流框架

随着前端技术的不断演进,开发者们对高效、便捷且强大的框架的需求日益增加。Angular、React和Vue作为当前前端领域的三大主流框架,各自以其独特的优点和特性,满足了不同场景下的开发需求。 一、Angular Angular,原名AngularJS&am…

【CMake系列】08-debug release特性设置

在构建的程序版本中,一共有 debug release minisize relwithDebugInfo四种,其中我们主要使用到就是 debug release 两种,这两种存在着一定的不同,debug 版本 用于调试,有调试信息,方便调试,体积…

Docker:定义未来的软件部署

1. 概述 Docker,这个在技术圈里频频被提及的名词,实际上是一种开源的容器化技术。它允许开发者将应用程序及其依赖打包成一个标准化的单元——容器,确保应用在任何环境中都能够一致地运行。从开发者的本地机器到全球的云平台,Doc…

Java——Stream流(2/2):Stream流的中间方法、终结方法(方法、案例演示)

目录 Stream流的中间方法 方法 案例演示 Stream流的终结方法 方法 案例演示1 收集 案例演示2 Stream流的中间方法 方法 中间方法指的是调用完成后会返回新的Stream流&#xff0c;可以继续使用(支持链式编程)。 Stream提供的常用中间方法说明Stream<T> filter(P…

gkuubibiih

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…