《MySQL数据原理与应用》实验报告实验10触发器.docx
-
资源ID:6870496
资源大小:38.48KB
全文页数:7页
- 资源格式: DOCX
下载积分:5金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
《MySQL数据原理与应用》实验报告实验10触发器.docx
实验10触发器实验目的令了解触发器的定义、作用和优缺点;令熟悉掌握触发器的创建;令掌握查看和删除触发器;令掌握通过图形化工具管理触发器。要求:所有操作结果均以截图的形式保存,截取的图上尽可能的出现自己的个人信息。实验设备PC机一台;Win7/10操作系统;MySQL8.0、Navicat>Workbench0【实验报告提交】在完成本实验文档要求的所有任务后,加上版权(水印),将文件以“学号姓名+实验10触发器”命名,并转换成PDF文件,提交至超星平台本课程对应的作业文件夹中。实验任务任务1保护系部表中人文与教育学院的地址信息不能被更改任务2保护等级表中学号信息不能被删除任务3使用Navicat工具创建触发器记录班级表操作日志任务4使用Workbench工具管理触发器任务5实验过程中常见错误解决方法实验流程任务1保护系部表中人文与教育学院的地址信息不能被更改【任务需求】在"db_study”数据库中创建名为"before_noupdate_department”的触发器,使得“tb_department”系部表中人文与教育学院的地址信息不能被更改。首先未创建触发器之前使用UPDATE语句对人文与教育学院的地址信息进行更改,将其地址改为“5栋教学楼二【任务参考效果图】nvsql>SELECT*FROMtb-department->WHEREdepartment_name="人文与教育学院”;+a>MrananarwnararmrarMrwnarawmrararaanarar三_+Idepartment_idIdepartment_namedepartment_phone!department_address+-J;+IX08I人文与教育学院I874712365栋教学楼441IS=Z=1-1rowinset(0.00sec)mysql>SELECT*FROMtb_department->WHEREdepartment_name="人文与教育学院”;,一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一十一一一一一一一一一一一一一一一一一一一一十Idepartment-id|department_namedepartment_phoneIdepartment_addressIX08I人文与教育学院I8747123615栋教学楼4H4-T+1rowinset(0.00sec)【任务完成效果图】任务2保护等级表中学号信息不能被删除【任务需求】在“db_study”数据库中创建名为“after_nodelete_grade”的触发器,使得“tb_grade”等级表中“20220101003”学号的信息不能被删除。【任务参考效果图】mysql>DELETEFROMtb_gradeWHEREstudent_id=,20220101003,;ERROR1054(42S22):Unknowncolumn,student2id,11n'whereclause,mysql>.【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务3使用NaViCat工具创建触发器记录班级表操作日志【任务需求】使用数据库图形化管理工具NaViCat创建触发器,当向班级表中添加数据之后,在班级表日志中将记录相应信息。【任务参考效果图】mysql>SELECT*FROMtb_class_logs;H+二+IidIdatelog_textI1I2023-02-06添加了新的班级信息HH+1rowinset(0.00sec)【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务4使用Workbench工具管理触发器【任务需求】使用数据库图形化管理工具Workbench查看和删除触发器。打开数据库图形化管理工具MySQLWorkbench,登录成功后,单击菜单栏的【新建查询】图标,按照任务需求在SQL脚本编辑窗口编写SQL语句,最后单击【运行】图标或使用快捷键“Ctrl+Enter”,即可查看和删除触发器。【任务参考效果图】SQIFIW 夕 SQL FiIePEventTableTimrgGeatedSQLModeDeerQentCharacter.Da三TEtb.dwAFTER2023-02-0916:1ONLY_FUILjGRrootoohostutfmMINSERTtb.dprtme11tAFTER2023-02-0916:0ONLY_FUIL.GRrootochostUtfSmMUPDATttb.depftmetBEFoRe202X2必16:0ONLY.FULL.GRrootloclhostUtfSmtHoa三tbQrdeAFT三2023-02-0916:0only.full.grrootloolhostUtfSmMName3ftfjns文fterjnsft-dprtmeft卫beffe.nopdt.deprtmetMafterJXJdeIetjgradeSQLFi7、¾用gtoWm,2Q1*1)ROPTRIGGERIFEXISTSafter_nodelete_grade;2Oput0ActxyiOutput【任务完成效果图】任务5实验过程中常见错误解决【任务需求】在实验过程中出现如下图所示的错误,请调试,并写出解决办法。【实验思考】1 .语句结束符冲突多个MySQL默认的语句结束符号"”冲突,如下图所示。mysql>CREATETRIGGERafter_insert- >BEFOREINSERTONtb_department- >FOREACHROW- >BEGIN- >INSERTINTOtb_department_logs(date,log_text)- >MALUES(CURDATEO,CoNCAT('添加了新的系部信息');ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''atline6问题原因:解决方案:2 .切换结束标记无效在Windows命令提示符窗口创建完触发器后使用“DELIMITER;”语句切换结束标记无效,如下图所示。mysql>DELIMITER$mysql>CREATETRIGGERafter_nodelete_grade- >AFTERDELETEONtb_grade- >FOREACHROW- >BEGIN- >IFstudent_idTHEN- >CALLROLLBACK;- >ENDIF;- >END$Query0K,0rowsaffected(0.01sec)mysql>DELIMITER;问题原因:解决方案:3.创建触发器重复在任务1的基础上再建一个触发器,使得系部表中计算机学院的地址信息不能被更改,但提示触发器己经存在,如下图所示mysql>DELIMITER$mysql>CREATETRIGGERbefore_noupdate- >BEFOREUPDATEONtb_department- >FOREACHROW- >BEGIN- >IFdepartment_name="计算机学院”THEN- >SETNEW.department_address=OLD.department_address;- >ENDIF;- >END一$ERROR1359(HYOOO):Triggeralreadyexistsmysql>问题原因:解决方案: