oracle触发器(oracle触发器用法附实例讲解)
oracle 触发器(oracle 触发器用法|附实例讲解)一、触发器简介
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。
因此触发器不需要人为的去调用,也不能调用。
然后,触发器的触发条件其实在你定义的时候就已经设定好了。
触发器可以分为语句级触发器和行级触发器,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。
具体举例:
1、 在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。
2、 在一个表中定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。二、触发器语法
触发器的语法:create[orreplace]tigger触发器名触发时间触发事件 on表名 [foreachrow] begin pl/sql语句 end
其中:
触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发器执行;
after:表示在数据库动作之后触发器执行。
触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器。
表 名:数据库触发器所在的表。
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。功能
触发器能实现如下功能:
1、 允许/限制对表的修改
2、 自动生成派生列,比如自增字段
3、 强制数据一致性
4、 提供审计和日志记录
5、 防止无效的事务处理
6、 启用复杂的业务逻辑实例
1)、下面的触发器在更新表tb_emp之前触发,目的是不允许在周末修改表:createorreplacetriggerauth_securebeforeinsertorupdateorDELETE ontb_emp begin IF(to_char(sysdate,'DY')='星期日')THEN RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表tb_emp'); ENDIF; END; /
2)、使用触发器实现序号自增
创建一个测试表:createtabletab_user( idnumber(11)primarykey, usernamevarchar(50), passwordvarchar(50) );
创建一个序列:
create sequence my_seq increment by 1 start with 1 nomaxvalue nocycle cache 20;
创建一个触发器:CREATEORREPLACETRIGGERMY_TGR BEFOREINSERTONTAB_USER FOREACHROW--对表的每一行触发器执行一次 DECLARE NEXT_IDNUMBER; BEGIN SELECTMY_SEQ.NEXTVALINTONEXT_IDFROMDUAL; :NEW.ID:=NEXT_ID;--:NEW表示新插入的那条记录 END;
向表插入数据:insertintotab_user(username,password)values('admin','admin'); insertintotab_user(username,password)values('fgz','fgz'); insertintotab_user(username,password)values('test','test'); COMMIT;
查询表结果:SELECT * FROM TAB_USER;
3)、当用户对test表执行DML语句时,将相关信息记录到日志表--创建测试表 CREATETABLEtest( t_idNUMBER(4), t_nameVARCHAR2(20), t_ageNUMBER(2), t_sexCHAR ); --创建记录测试表 CREATETABLEtest_log( l_userVARCHAR2(15), l_typeVARCHAR2(15), l_dateVARCHAR2(30) );
创建触发器:--创建触发器 CREATEORREPLACETRIGGERTEST_TRIGGER AFTERDELETEORINSERTORUPDATEONTEST DECLARE V_TYPETEST_LOG.L_TYPE%TYPE; BEGIN IFINSERTINGTHEN --INSERT触发 V_TYPE:='INSERT'; DBMS_OUTPUT.PUT_LINE('记录已经成功插入,并已记录到日志'); ELSIFUPDATINGTHEN --UPDATE触发 V_TYPE:='UPDATE'; DBMS_OUTPUT.PUT_LINE('记录已经成功更新,并已记录到日志'); ELSIFDELETINGTHEN --DELETE触发 V_TYPE:='DELETE'; DBMS_OUTPUT.PUT_LINE('记录已经成功删除,并已记录到日志'); ENDIF; INSERTINTOTEST_LOG VALUES (USER,V_TYPE,TO_CHAR(SYSDATE,'yyyy-mm-ddhh24:mi:ss'));--USER表示当前用户名 END; /
--下面执行DML语句INSERTINTOtestVALUES(101,'zhao',22,'M'); UPDATEtestSETt_age=30WHEREt_id=101; DELETEtestWHEREt_id=101;
--查看效果SELECT*FROMtest; SELECT*FROMtest_log;
运行结果如下:
篇幅有限,今天内容就分享到这了,后面会更多分享DBA和devops内容,感兴趣的朋友可以关注下~
漫步者音箱r101t06(性价比最高的电脑音箱有哪些?)漫步者音箱r101t06(性价比最高的电脑音箱有哪些?)台式电脑想要输出声音,就需要搭配一款音箱或者耳机,不过有些用户因为种种原因不喜欢戴耳机,还是倾向音箱一些,所以本文准备推荐一
家庭防盗报警系统(家庭防盗报警系统构成)家庭防盗报警系统(家庭防盗报警系统构成)防盗报警器最近颇受家庭青睐,成为很多家庭购买安防设备的首选目标。而科技的不断进步也让防盗报警器从过去单一的防盗功能发展为现在可以在防盗窃的同
电子管功放(电子管功率放大器有哪几种连接方法?)电子管功放(电子管功率放大器有哪几种连接方法?)电子管功放的类型较多,目前比较流行的有单端A类A类推挽AB1类AB2类功放等。比较典型著名的超线性功放威廉逊功放等均属AB1类。其输
波音防务(波音欲重新打开中国市场)波音防务(波音欲重新打开中国市场)图为波音737MAX得益于美国波音客机停飞的影响,中国C919客机目前订单已经突破1000架,面对这种局面,波音连夜向中国求饶,希望能够重新打开中
勇敢的心影评(男人必看经典的影片)勇敢的心影评(男人必看经典的影片)所谓经典,顾名思义,常念为经,常数为典。经典就是经得起重复,就是常被人想起,就是不会被人忘记。有道是话说三遍淡如水。但经典的作品,可以被人一遍遍地
消逝的光芒配置(5款低配置3A大作推荐)消逝的光芒配置(5款低配置3A大作推荐)Holle各位玩家老爷大家好,我是一葉,今天给大家带来的是低配置下流畅运行且质量高的五款大作,希望可以对各位的游戏选择有些帮助第一款刺客信条
陕西猕猴桃(陕西秦岭发现野生猕猴桃树王)陕西猕猴桃(陕西秦岭发现野生猕猴桃树王)来源中国新闻网近日,在陕西秦岭眉县营头镇大理村大菜园沟深处,专家考察组发现一颗野生猕猴桃树王。该野生猕猴桃树树杆蜿蜒盘旋犹如蟒蛇,根部树围5
红旗牌轿车(36万元买辆红旗H9)红旗牌轿车(36万元买辆红旗H9)红旗H9是华系高端商务轿车,正面对标宝马5系奥迪A6L奔驰E级,凭借着大气的外观吸引了很多中年老板,因为它的动力总成基本上和奥迪A6L一样,给那些
1kwh等于多少度电(三相电表一度算几度)现在的三相电表一般都是在屏幕上面直接看,屏幕上面是有文字提示显示的,三相电表的总度数,上面的文字提醒一般是正向有功总电量,三相电表一般屏幕旁边都会上翻键和下翻键,可以上下翻开电表里
企业职工退休年龄?(企业职工已达到退休年龄但是缴费年限未满15年?)企业职工退休年龄?(企业职工已达到退休年龄但是缴费年限未满15年?)如果想在退休后按月领取养老金的话,我们知道一般是需要满足两个条件第一是达到法定的退休年龄,第二是养老保险缴费年限
丧葬费补助标准(退休职工丧葬费发放标准是怎样?)退休职工丧葬费发放标准,依据当地的政策确定。成都地区退休职工丧葬费发放标准为死亡上一年度四川省在岗职工月平均工资的4个月抚恤金标准为本人死亡当月基本养老金的8个月。申请退休职工丧葬
世茂佘山庄园(五居室简约装修不凌乱,180万元就能搞定?)世茂佘山庄园(五居室简约装修不凌乱,180万元就能搞定?)装修是买房者必须要经历的,很多业主都选择了五居室,大概得763平米的房子来满足日常的需求。这样的房子大多数都会采用全包,简
国富基金公司(富国基金管理有限公司)国富基金公司(富国基金管理有限公司)为更好地满足广大投资者的理财需求,根据中华人民共和国证券法中华人民共和国证券投资基金法公开募集证券投资基金运作管理办法公开募集证券投资基金信息披
血小板减少性紫癜(血小板减少性紫癜容易反复?)血小板减少性紫癜(血小板减少性紫癜容易反复?)免疫性血小板减少性紫癜容易反复,部分患者进入慢性期,迁延不愈。常见的诱发因素主要有感染(如病毒细菌幽门螺杆菌等)劳累药物饮食应激等,个
中国四大古典小说(中国古典四大名著是哪些?)中国四大古典小说(中国古典四大名著是哪些?)中国古典文学四大名著作者简介及内容提要三国演义作者简介及内容简介水浒传作者简介及内容简介西游记作者简介及内容简介红楼梦作者简介及内容简介
空手道教学(4招简单实用的空手道实战技法)空手道教学(4招简单实用的空手道实战技法)一站立姿势(预备势)(1)两脚开立,略宽肩两手握拳,分别置于身体两侧,拳眼朝前头正肩平。目视正前方。(图256)(2)两臂上举至头部前上方
空手把锄头(空手把锄头,步行骑水牛)空手把锄头(空手把锄头,步行骑水牛)空手把锄头,步行骑水牛,人从桥上过,桥流水不流。空手把锄头,步行骑水牛,人从桥上过,桥流水不流。傅大士这首偈看来有些玄虚,叫人莫名其妙。人从桥上
空竹教学(和田小学生学会抖空竹)空竹教学(和田小学生学会抖空竹)这些天,新疆和田县第三小学三年级(4)班的小学生祖丽阿娅吐送江正在为六一儿童节的演出加紧排练。加入学校的舞蹈社团几个月来,祖丽阿娅更加开朗活泼,课堂
空竹教学视频(老年人抖空竹的技巧和四大好处)空竹教学视频(老年人抖空竹的技巧和四大好处)空竹是北京的传统健身项目,如今还经常在公园看到有人再用它去健身。那么作为传统的健身项目,抖空竹有什么技巧和好处呢?初学先学怎样用劲空竹的
情人节笑话(搞笑段子情人节晚上)情人节笑话(搞笑段子情人节晚上)以前我爸爸非常惹女人喜欢,总是有女人隔三差五的给他打电话!总惹得我家里天天吵架,我也天天在哭!从我毕业以后,我们家里总算清静了,我的爸爸妈妈也不吵架
羽毛球假动作(羽毛球假动作和动作一致性)羽毛球假动作(羽毛球假动作和动作一致性)羽毛球假动作和动作一致性,二者都要求突变,但千万不要混淆!由于羽毛球运动的特点所决定,其球拍轻巧灵活,手腕手指控制比较容易,而且球拍的正反拍
刘翔的身高(1米89大长腿没有半点缩水)刘翔的身高(1米89大长腿没有半点缩水)记录穿搭趣事,分享搭配技巧,我是三分巧搭要说,上半年最火的衣服里,束脚裤的潮流应该没有人反对吧。不光是那些传统大牌在推束脚裤,其他运动品牌也