- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机专业复习资料
一、触发器
触发器是一种特殊类型的存储过程,当触发表执行DML操作时被Oracle系统自动执行。触发器可以实现复杂的数据完整性规则,达到保护触发表中数据的目的。
1、触发器的类型
(1)按触发事件的不同,触发器可以分为插入型(INSERT)、更新型(UPDATE)和删除型(DELETE)触发器。
(2)根据指定的事件和触发器执行的先后次序,触发器可以分为BEFORE型和AFTER型触发器。
如果在指定的事件(INSERT、UPDATE或者DELETE)之前执行触发器,这类触发器称为BEFORE触发器,若在指定的事件之后执行触发器,则称这类触发器为AFTER触发器。
(3)根据触发的级别的不同,触发器可以分为行触发器和语句触发器。
对于行触发器受触发器事件的影响的每一行都将引发触发器的执行;而对于语句触发器,触发事件只触发一次,即使有若干行受触发事件的影响,也只执行一次触发操作。
2、创建触发器注意事项
Oracle提供了SQL Developer和PL/SQL语句两种方式创建触发器。创建触发器时,在触发器内可以包含各种PL/SQL语句,但以下情况除外:
触发器不可以在定义它的表上执行DML操作;
触发器不可以执行COMMIT、ROLLBACK或者SAVEPOINT语句,而且也不可以调用包含这些语句之一的存储过程或者函数;
不可以在触发器中声明LONG或者LONG RAW变量。
3、使用PL/SOL创建触发器
使用PL/SOL中的CREATE TRIGGER命令可任意用来创建触发器,其基本语法格式为:
CREATE [OR REPLACE] TRIGGER[用户方案.]触发器名
BEFORE|AFTER|INSTEAD OF
INSERT |[OR]DELETE|[OR]UPDATE [OF列1,…N]
ON [用户方案.]表名|视图名
[FOR EACH ROW[WHEN条件表达]]
BEGIN
PL/SQL语句
END [触发器名];
例:1)为用户方案SCOTT的客户表CUSTOMER创建插入型触发器,当添加新客户信息时,显示“欢迎新客户注册!”。
CREATE OR REPLACE TRIGGER SCOTT.TRG_ADDCUSTOMER1
AFTER INSERT
ON SCOTT.CUSTOMER
BEGIN
DBMS_OUTPUT.PUT_LINE(欢迎新客户注册!);
END TRG_ADDCUSTOMER1;
--输入下面的INSERT命令验证结果:
INSERT INTO CUSTOMER (CUSTID, CUSTNAME)
VALUES(C080113002, 陈莉);
(2)为用户方案SCOTT的客户表CUSTOMER创建删除型触发器,当删除客户信息时,显示删除客户记录的信息。
CREATE OR REPLACE TRIGGER TRG_REMOVECUSTOMER
BEFORE DELETE
ON CUSTOMER
FOR EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE(待删除的记录为:);
DBMS_OUTPUT.PUT_LINE(:OLD.CUSTID|| || :OLD.CUSTNAME);
END TRG_REMOVECUSTOMER;
--输入下面的DELETE命令验证结果:
DELETE CUSTOMER
WHERE CUSTID = C080113001;
4、使用PL/SQL查看触发器
例:查看用户方案SCOTT中所有触发器的名称,触发类型,触发事件,所有者和触发表等信息。
Select trigger_name 触发器名,
Trigger_type 触发器类型,
Triggering_event 触发事件,
Table_name 触发表
From user_triggers;
5、使用PL/SQL修改触发器
修改触发器和修改视图类似,虽然ORACLE也提供ALTER TRIGGER命令?,但它只用于重新编译或者验证现有触发器。如果需要修改触发器的定义,则仍然使用create or replace trigger命令。
例:修改用户方案SCOTT的触发器PRC_ADDCUSTOMER1,当在客户表CUSTOMER中添加新纪录时,显示“欢迎您,XYZ”(XYZ为客户姓名)的信息。
(1)修改触发器TRG_ADDCUSTOMER1:
CREATE OR REPLACE TRIGGER TRG_ADDCUSTOMER1
AFTER INSERT
ON CUSTOMER
FOR EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE(欢迎您, || :NEW.CUSTNAME);
END TRG_ADDCUSTOME
您可能关注的文档
- 英语语法系列---状语从句.doc
- 商务英语口语58句.doc
- A经理的担忧.doc
- 2013届五校联考数学答案(文理).doc
- 我的家乡Microsoft+PowerPoint+演示文稿.ppt
- 2011年高考英语四川卷(答案).doc
- 防止放炮后堵塞进风口的安全技术措施.doc
- 成本管理形成性考核册作业3答案.doc
- 成功需要走十步的话.doc
- 比例的意义 课前预习学案.doc
- 2025-2030航空发动机零部件市场分析及军民融合趋势与关键技术突破研究.docx
- 2025至2030中国聚羟基链烷酸酯行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030信息化产业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030家政机器人市场产业运行态势及投资规划深度研究报告.docx
- 2025至2030全球及中国双目移动裂隙灯行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030全球及中国调度台行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025-2030中国边缘计算技术发展动态及商业价值预测报告.docx
- 2025至2030中国烷基酚醛树脂行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030中国自动张力控制器行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030蓄电池行业项目调研及市场前景预测评估报告.docx
最近下载
- 刑事审判参考2001年第7辑(总第18辑).pdf VIP
- 刑事审判参考2001年第4辑(总第15辑).pdf VIP
- GB/T 18998.5-2022工业用氯化聚氯乙烯(PVC-C)管道系统 第5部分:系统适用性.pdf
- 刑事审判参考2001年第8辑.总第19辑.pdf VIP
- 急诊危重症护理新进展题库答案-2025年华医网继续教育答案.docx VIP
- 《共圆中国梦》教学设计 统编版道德与法治九年级上册.pdf
- 新解读《DL_T 2765—2024输变电工程逻辑模型规范》最新解读.docx VIP
- 2025年锅炉水处理作业G3证理论考试笔试试题(400题)含答案.docx VIP
- 刑事审判参考2001年第9辑.总第20辑.pdf VIP
- 房地产开发重要节点及流程.pptx VIP
文档评论(0)