- 3
- 0
- 约4.56千字
- 约 20页
- 2023-08-08 发布于海南
- 举报
项目八 触发器
目录/Contents0102创建触发器管理触发器
学习目标学习创建、查看、删除触发器的基本语法格式;学习使用INSERT、UPDATE和DELETE语句激活触发器的方法。知识目标掌握创建不同类型触发器的技能;掌握管理触发器的方法。技能目标使学生了解MySQL程序开发规范的重要性,培养学生的职业素质和道德规范;培养学生的规则意识,能够正确使用触发器为数据表建立规则。素质目标
任务8.1 创建触发器
任务8.1 创建触发器触发器与数据表的关系密切,主要用于保护表中的数据。只有使用INSERT、UPDATE或DELETE语句才能激活触发器,使用其他SQL语句不会激活触发器。语法格式如下所示。CREATE TRIGGER 触发器名称 触发时机 触发事件 ON 表名 FOR EACH ROW BEGIN 触发器主体代码END触发事件可用的关键字有INSERT、UPDATE、DELETE,关键字INSERT用于将一行新数据插入表中时激活触发器,关键字UPDATE用于更改表中某一行数据时激活触发器,关键字DELETE用于从表中删除某一行数据时激活触发器。触发时机可用的关键字有BEFORE、AFTER,表示触发器在激活它的语句之前或之后触发。若希望验证新数据是否满足条件,则使用关键字BEFORE;若希望在激活触发器的语句执行之后完成更多的操作,则通常使用关键字AFTER。
8.1.1 创建INSERT型触发器1.创建并调用无参的存储过程【实例8-1】在xsgl数据库中为kecheng表创建名为“t8_1”的INSERT型触发器,要求在kecheng表中插入一条记录后检查其学分设置是否合理(合理的学分应大于等于0且小于等于5),若不合理则设置其学分为2.5,SQL语句及其执行结果如下所示。mysqlDELIMITER $mysqlUSE xsgl$mysqlCREATE TRIGGER t8_1 BEFORE INSERT ON kecheng FOR EACH ROW BEGIN IF NEW.xf0 OR NEW.xf5 THEN SET NEW.xf=2.5; END IF; END$mysqlINSERT INTO kecheng(kcdm,kcmc,xf) values(C11,触发器,20)$mysqlSELECT * FROM kecheng WHERE kcdm=C11$
8.1.1 创建INSERT型触发器【提示】以上SQL语句分为三大部分。第一部分使用CREATE TRIGGER语句为kecheng表创建名为“t8_1”的触发器,关键字INSERT指的是当对kecheng表进行INSERT操作时触发该触发器,关键字BEFORE指的是在操作发生之前触发该触发器。第二部分使用INSERT语句向kecheng表中插入一条学分不合理的记录,在INSERT语句执行之前会触发t8_1触发器,转而执行触发器主体代码,其中的关键字NEW代表待插入的记录,触发器主体代码中使用IF语句判断待插入的记录中的学分字段不合法后,将待插入的记录中的学分字段设置成2.5,再执行INSERT语句。第三部分使用SELECT语句查询出刚插入的记录。从执行结果可以看到,在kecheng表中插入一条学分不合理的记录时,成功通过触发器将其学分字段设置为了2.5。【注意】若创建触发器时使用关键字AFTER,则触发器主体代码中只能使用关键字NEW获取插入的这一行记录的每一个字段。
8.1.2 创建UPDATE型触发器【实例8-2】在xsgl数据库中为kecheng表创建名为“t8_2”的UPDATE型触发器,要求在kecheng表中更新记录前,只允许更新其课程名称,SQL语句及其执行结果如下所示。mysqlDELIMITER $mysqlUSE xsgl$mysqlCREATE TRIGGER t8_2 BEFORE UPDATE ON kecheng FOR EACH ROW BEGIN IF NEW.kcdm!=OLD.kcdm THEN SET NEW.kcdm=OLD.kcdm; END IF; IF NEW.xf!=OLD.xf THEN SET NEW.xf=OLD.xf; END IF; END$mysqlUPDATE kecheng SET kcdm=C12,kcmc=数据结构2022,xf=2.0 where kcdm=C02$mysqlSELECT * FROM kecheng WHERE kcmc=数据结构2
您可能关注的文档
- MySQL数据库项目化教程 项目九 数据库的高级管理.pptx
- MySQL数据库项目化教程 项目六 视图.pptx
- MySQL数据库项目化教程 项目七 存储过程、存储函数与事务.pptx
- MySQL数据库项目化教程 项目十 数据库设计.pptx
- MySQL数据库项目化教程 项目一 数据库入门.pptx
- MySQL数据库项目化教程 项目二 建立和管理数据库.pptx
- 第9章 市场营销学的新进展.pptx
- 第1章 市场营销与市场营销学.pptx
- 第8章 4P 分析市场营销.pptx
- 第2章 市场营销的社会责任与伦理.pptx
- 《GB/T 21561.1-2025轨道交通 机车车辆 受电弓特性和试验 第1部分:机车车辆受电弓》.pdf
- 《GB/T 6346.2301-2025电子设备用固定电容器 第23-1部分:空白详细规范表面安装金属化聚萘二甲酸乙二醇酯膜介质直流固定电容器 评定水平EZ》.pdf
- 2026年中国城市建设史复习题200道含答案(基础题).docx
- 2026年注册会计师(CPA)考试题库200道及1套参考答案.docx
- 60103交通事故案卷文书 标准 ga 40-2018.pdf.pdf
- 小升初衔接第一讲:基础词汇与句型综合梳理与运用(基于Starters 14).docx
- 四级公路设计关键要素教学课件.pptx
- Unit7SectionA2a-2e课件鲁教版英语六年级下册.pptx
- 初中地理八年级:探秘台湾省环境与经济协同发展.docx
- Unit2Success单元重点单词单句写作练习课件-北师大版高中英语选择性(1).pptx
原创力文档

文档评论(0)