- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
项目八触发器
任务目标任务一创建触发器任务二应用触发器任务三 查看触发器任务四 删除触发器
教学目标能力目标◎能熟练查看触发器信息,按需建立和修改触发器;◎能应用触发器解决复杂的业务逻辑关联。知识目标◎了解触发器的用途和类型,熟悉触发器创建语法;◎掌握触发器中的NEW和OLD的应用。学习重点◎掌握触发器的查看、建立和测试;◎掌握NEW和OLD的应用。学习难点◎触发器的级联触发与测试。
任务一创建触发器
创建触发器主要内容:触发器作用创建触发器测试触发器重点难点:触发器应用;
触发器作用引入:商品销售会使商品销售量增加,而库存量必须相应地减少相同数量,通常为了实现这样的强制业务规则和数据完整性,我们把这种业务规则编写成触发器,通过触发器来实现复杂的业务规则的触发动作。
触发器触发器是一种与数据表紧密结合的特殊的存储过程,用于保护表中的数据。当该数据表有插入、更改或删除事件发生时,所设置的相应触发器的触发操作也会自动执行。检查数据变动的一致性:在销售图书时,为保证图书资料表和销售销售表的图书信息变动一致,可通过建立一个销售销售表上建立UPDATE和INSERT触发器,可以使用关键字old和new来引用触发器中发生变化的记录内容。
创建触发器查阅语法:官网文档:/doc/refman/8.0/en/create-trigger.html语法:CREATETRIGGERtrigger_name{BEFORE|AFTER}{INSERT|UPDATE|DELETE}ONtbl_nameFOREACHROW[{FOLLOWS|PRECEDES}other_trigger_name]trigger_body
创建触发器关键字:NEW和OLD触发器中使用的NEW和OLD,用来表示触发器的所在表中,触发了触发器的那一行数据。使用方法:NEW.col_nameOLD.col_nameOLD是只读的,而NEW则可以在触发器中使用SET赋值,这样不会再次触发触发器,造成循环调用。INSERT型触发器中,NEW用来表示将要(BEFORE)或已经(AFTER)插入的新数据;UPDATE型触发器中,OLD用来表示将要或已经被修改的原数据,NEW用来表示将要或已经修改为的新数据;DELETE型触发器中,OLD用来表示将要或已经被删除的原数据;
AFTER触发器应用例1:建立一个item表的插入触发器mysqlDROPTRIGGERIFEXISTStg_goods_ins;mysqldelimiter//mysqlCREATETRIGGERtg_goods_ins AFTERINSERTONitem FOREACHROW BEGIN UPDATEgoods SETamount=amount-NEW.quantity WHEREid=NEW.goods_id;END//mysqldelimiter;mysqlSELECT*FROMitem;mysqlINSERTINTOitem(order_id,goods_id,supplier_id,quantity)VALUES(2,2,1,10);#测试插入触发器mysqlSELECT*FROMitem;mysqlSELECT*FROMgoods;
AFTER触发器应用例2:建立一个item表的修改触发器mysqlDROPTRIGGERIFEXISTStg_goods_mod;mysqldelimiter//mysqlCREATETRIGGERtg_goods_mod AFTERUPDATEONitemFOREACHROWBEGINUPDATEgoodsSETamount=amount+(old.quantity-NEW.quantity)WHEREgoods_id=NEW.goods_id;END//mysqldelimiter;mysqlUPDATEitemSETquantity=quantity-5#测试修改触发器WHEREitem_id=6;mysqlSELECT*FROMitem;mysqlSELECT*FROMgoods;
AFTER触发器应用例3:建立一个item表的删除触发器mysqlDROPTRIGGERIFEXISTStg_goods_del;mysqldelimiter//mysqlCREATETRIGGE
您可能关注的文档
- 《MySQL数据库应用与管理项目化教程》课件_项目6-视图.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目5-1基本查询.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目5-3跨表连接查询.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目7-3 存储过程.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目5-2 统计查询.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目7-1 运算符.pptx
- 《MySQL数据库应用与管理项目化教程》课件_项目2-2 应用数据库存储引擎--new.pptx
- 《计算机操作系统 》课件_3.2进程的概念.pptx
- 《计算机操作系统 》课件_4.4分段存储管理方式.pptx
- HVAC的概念HVACcn拜耳关于HVAC的讲解.ppt
最近下载
- 第3课 发现自我 完善自我 第二框-【中职专用】高一思想政治《心理健康与职业生涯》高效备课精品课件(高教版2023·基础模块).pptx
- 《汽车行业生产组织质量管理体系成熟度评价准则》(征求意见稿)编制说 .pdf VIP
- 2025年徐淮阜高速收费站招聘收费员32人笔试备考题库及答案解析.docx
- 纪州喷码技术(上海)有限公司环境影响报告书 .pdf VIP
- 教育数字化的现状与发展趋势.docx
- 七下第16课 《有为有不为》课件(共20张PPT).pptx
- GB-T 16584-1996橡胶用无转子硫化仪测定硫化特性.pdf
- 部编版语文一年级下册总体及各单元教学目标.doc VIP
- 论通勤工伤事故的责任竞合及处理模式_.doc VIP
- 鼻肠梗阻导管护理常规ppt.pptx
文档评论(0)