oracle中触发器只能用于表吗,Oracle触发器的分类和使用

Oracle触发器的分类和使用

摘要:在Oracle中,触发器是一种特殊的存储过程,它在发生某种数据库事件时由Oracle 系统自动触发。触发器通常用于加强数据的完整性约束和业务规则等,对于表来说,触发器可以实现比CHECK约束更为复杂的约束。本文介绍了Oracle触发器的概念,功能,优缺点,组成等方面。详细解读了Oracle触发器在各方面的应用并配合相关实例。

关键字:Oracle、触发器、介绍、应用

一、触发器的介绍

1.1 触发器的概念

在Oracle中,触发器是一种特殊的存储过程,它在发生某种数据库事件时由Oracle系统自动触发发器,通常用于加强数据的完整性约束和业务规则等。

触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的,而是由一个事件来启动运行。即触发器是当某个时间发生时自动地隐式运行。

1.2 触发器的功能

●允许/限制对表的修改

●自动生成派生列,比如自增字段

●强制数据一致性

●提供审计和日志记录

●防止无效的事务处理

●启用复杂的业务逻辑

1.3 触发器的优缺点

优点:触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用CHECK 约束定义的约束更为复杂的约束。与CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDA TE 或DELETE)允许采取多个不同的对策以响应同一个修改语句。

缺点:触发器功能强大,轻松可靠地实现许多复杂的功能,但是它也具有一些缺点那就是由于我们的滥用会造成数据库及应用程序的维护困难。在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作。同时规则、约束、缺省值也是保证数据完整性的重要保障。如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程序。

1.4 触发器的组成

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

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

相关文章

Android之倍数提高工作效率的 Android Studio 奇技

关于快捷键 The File Structure Popup ctrlf12 此快捷键可以调出当前文件的大纲,并通过模糊匹配快速跳转至指定的方法。 勾选上“show anonymous classes”后其功能相当于Eclipse中的ctrlo The Call Hierarchy Popup ctrlalth 查看某个方法的调用路径。 Quick De…

Spring学习笔记十二---泛型依赖注入

为什么80%的码农都做不了架构师&#xff1f;>>> package generic_di;import org.springframework.stereotype.Repository;Repository public class BaseRepository<T> {public void save() {System.out.println("Repository save ...");} }package…

STM32的同步规则模式使用

由于要采集电压、电流以计算功率、阻抗等信息&#xff0c;STM32的同步规则模式很适合于这种情景。使用时有几点需要注意的&#xff1a; 1、选择正确的模式&#xff1a;ADC_Mode_RegSimult&#xff0c;即DUALMOD[3:0] 0110&#xff0c;ADC2在双模式中&#xff0c;这些位为保留位…

女孩子狠起来可以多可怕?

1 让我康康是什么好吃的&#xff1f;▼2 抢答&#xff1a;他们到底能不能走出去&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 小朋友的眼睛是雪亮的&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 这该死的魅力▼5 我脚伤了&#xff0…

字符串之字符数组种是否所有的字符都只出现过一次

字符串之字符数组种是否所有的字符都只出现过一次 例子&#xff1a;chas[a,b,c],return true,chas[1,2,1],return false解题思路&#xff1a;定义boolean数组&#xff0c;默认是false,给每个字符转化成的整形数字作为boolean数组的下标&#xff0c;然后设置为true,如果下次出现…

开源的.NET定时任务组件Hangfire开发总结

定时任务调度问题&#xff0c;是一个老生常谈的问题。网上有许多定时任务调度的解决方案&#xff0c;以前主要是使用Window计划和Window服务来做任务定时执行&#xff0c;然后就开始使用定时任务调度框架Quartz.Net。Hangfire这个自带后台任务调度面板&#xff0c;可以在后台手…

oracle中表截断是什么意思,Oracle截断表

Oracle TRUNCATE TABLE在Oracle中&#xff0c;TRUNCATE TABLE语句用于从表中删除所有记录。它的作用与DELETE语句相同&#xff0c;但不指定WHERE子句。通常在不需要担心回滚的情况下使用一旦表被截断&#xff0c;就无法回滚。 TRUNCATE TABLE语句不影响表的任何索引&#xff0c…

jquery mobile页面切换效果(Flip toggle switch)(注:jQuery移动使用的数据属性的列表。 )...

1.页面切换&#xff08;data-transition&#xff09; 地址&#xff1a;http://api.jquerymobile.com/data-attribute/ data-transition fade | flip | flow | pop | slide | slidedown | slidefade | slideup | turn | none 褪色 | |翻转||流流行幻灯片| | | slidedown | s…

Android之如何解决android.os.NetworkOnMainThreadException的异常

android.os.NetworkOnMainThreadException 首先从字面的意思理解为网络工作在主线程的异常,也就是说网络请求不能在主线程里面 android4.0以后不能在主线程发起网络请求,该异步网络请求。 就针对此问题有两种解决的方法: 1.可以再Activity的onCreate()方法中加入这样一…

C# Socket编程笔记(转)

C# Socket编程笔记 http://www.cnblogs.com/stg609/archive/2008/11/15/1333889.html TCP Socket:Server 端连接步骤:new socket() -> bind() -> listen() -> accept() ->recv()/send() -> sockets.close() Client 端连接步骤:new socket() -> connect ->…

学习 wxpython_序

序-wxpython 学习 一直对python 比较感兴趣&#xff0c;今天终于下定决心潜心研究wxpython。从今天开始&#xff0c;将开始我的wxpython之路&#xff0c;希望通道的一起研究。 wxpython 是python的 GUI 框架之一&#xff0c;由于免费而且资料比较丰富&#xff0c;所以我选择用w…

oracle asm磁盘头 备份,ASM磁盘头的第三个备份-Physically Addressed Metadata Redundancy

这几天很蕉绿&#xff0c;想着复习下技术。个人很喜欢ASM&#xff0c;就从ASM开始复习。循环kfed发现一个很奇怪的事情&#xff0c;就是&#xff0c;我扫到AU 11的时候发现&#xff0c;居然这个aun的blkn0是KFBTYP_DISKHEAD。要知道以前看到KFBTYP_DISKHEAD就是第二个AU的倒数第…

头上有多少根头发算秃头?

全世界只有3.14 % 的人关注了爆炸吧知识灵魂拷问你秃头了吗&#xff1f;超模君表妹秃不秃头一直都是模友关心的问题&#xff01;我想是时候讲讲秃头这个问题了&#xff01;阿里数据显示&#xff0c;在阿里零售平台买植发、护发东西的人中&#xff0c;80后占了38.5%&#xff0c;…

VS Code集成SandDance可视化分析数据

什么是SandDanceSandDance是微软研究院推出的数据可视化工具。SandDance通过触控式的界面&#xff0c;实现使用者和3D信息图表进行互动&#xff0c;更加特别的是可以以不同的角度不同的方式呈现分析结果&#xff0c;使用户可以通过可视化的方式更加直观的接受数据信息。基于易于…

使用T-SQL找出执行时间过长的作业

有些时候&#xff0c;有些作业遇到问题执行时间过长&#xff0c;因此我写了一个脚本可以根据历史记录&#xff0c;找出执行时间过长的作业&#xff0c;在监控中就可以及时发现这些作业并尽早解决&#xff0c;代码如下&#xff1a; SELECT sj.name , sja.start_execution_date,D…

Android之混淆代码总结

为了防止自己的劳动成果被别人窃取&#xff0c;混淆代码能有效防止被反编译&#xff0c;下面来总结以下混淆代码的步骤&#xff1a; 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件&#xff0c;这个对混淆代码很重要&#xff0c;如果你不小…

SRM 588 D2 L2:GUMIAndSongsDiv2,冷静思考,好的算法简洁明了

题目来源&#xff1a;http://community.topcoder.com/stat?cproblem_statement&pm12707 算法决定一切&#xff0c;这道题目有很多方法解&#xff0c;个人认为这里 vexorian 给出的解法最简便&#xff0c;编码也最容易。而使用brute force 和 DP都比较复杂。 代码如下&…

android textview 中超出屏幕宽度的字符 省略号显示

2019独角兽企业重金招聘Python工程师标准>>> 当利用textview显示内容时&#xff0c;显示内容过多可能会折行或显示不全&#xff0c;那样效果很不好。今天发现android api中已经给出自动省略的功能。 实现如下&#xff1a; <TextView android:layout_width"f…

linux 系统迁移到固态硬盘,把Debian GNU/Linux迁移到SSD上

首先&#xff0c;还是sudo gparted把SSD分两个区&#xff0c;一个用作/一个用作/home。然后把文件都复制过去。当然/dev/media /mnt /proc /run /sys /tmp这几个目录就不要复制过去了&#xff0c;在SSD上建立个新的同名目录。ls -l/dev/disk/by-uuid看看uuid对应的是哪个盘&…

世界各国的教育差距有多大?这几部全世界都在热议的教育纪录片,揭开一切.........

全世界只有3.14 % 的人关注了爆炸吧知识BBC纪录片《人生七年》里讲到&#xff1a;人无法确定能留给下一代什么财物&#xff0c;但至少可以确定&#xff0c;一旦给了他们好的教育&#xff0c;他们终生都可以受用。但是这世界上从来没有一个学校去教我们要如何为人父母&#xff0…