《MySQL数据原理与应用》实验报告实验10触发器.docx

上传人:李司机 文档编号:6870496 上传时间:2024-03-13 格式:DOCX 页数:7 大小:38.48KB
返回 下载 相关 举报
《MySQL数据原理与应用》实验报告实验10触发器.docx_第1页
第1页 / 共7页
《MySQL数据原理与应用》实验报告实验10触发器.docx_第2页
第2页 / 共7页
《MySQL数据原理与应用》实验报告实验10触发器.docx_第3页
第3页 / 共7页
《MySQL数据原理与应用》实验报告实验10触发器.docx_第4页
第4页 / 共7页
《MySQL数据原理与应用》实验报告实验10触发器.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《《MySQL数据原理与应用》实验报告实验10触发器.docx》由会员分享,可在线阅读,更多相关《《MySQL数据原理与应用》实验报告实验10触发器.docx(7页珍藏版)》请在三一办公上搜索。

1、实验10触发器实验目的令了解触发器的定义、作用和优缺点;令熟悉掌握触发器的创建;令掌握查看和删除触发器;令掌握通过图形化工具管理触发器。要求:所有操作结果均以截图的形式保存,截取的图上尽可能的出现自己的个人信息。实验设备PC机一台;Win7/10操作系统;MySQL8.0、NavicatWorkbench0【实验报告提交】在完成本实验文档要求的所有任务后,加上版权(水印),将文件以“学号姓名+实验10触发器”命名,并转换成PDF文件,提交至超星平台本课程对应的作业文件夹中。实验任务任务1保护系部表中人文与教育学院的地址信息不能被更改任务2保护等级表中学号信息不能被删除任务3使用Navicat工

2、具创建触发器记录班级表操作日志任务4使用Workbench工具管理触发器任务5实验过程中常见错误解决方法实验流程任务1保护系部表中人文与教育学院的地址信息不能被更改【任务需求】在db_study”数据库中创建名为before_noupdate_department”的触发器,使得“tb_department”系部表中人文与教育学院的地址信息不能被更改。首先未创建触发器之前使用UPDATE语句对人文与教育学院的地址信息进行更改,将其地址改为“5栋教学楼二【任务参考效果图】nvsqlSELECT*FROMtb-department-WHEREdepartment_name=人文与教育学院”;+aM

3、rananarwnararmrarMrwnarawmrararaanarar三_+Idepartment_idIdepartment_namedepartment_phone!department_address+-J;+IX08I人文与教育学院I874712365栋教学楼441IS=Z=1-1rowinset(0.00sec)mysqlSELECT*FROMtb_department-WHEREdepartment_name=人文与教育学院”;,一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一十一一一一一一一一一一一一一一一一一一一一

4、十Idepartment-id|department_namedepartment_phoneIdepartment_addressIX08I人文与教育学院I8747123615栋教学楼4H4-T+1rowinset(0.00sec)【任务完成效果图】任务2保护等级表中学号信息不能被删除【任务需求】在“db_study”数据库中创建名为“after_nodelete_grade”的触发器,使得“tb_grade”等级表中“20220101003”学号的信息不能被删除。【任务参考效果图】mysqlDELETEFROMtb_gradeWHEREstudent_id=,20220101003,;ER

5、ROR1054(42S22):Unknowncolumn,student2id,11nwhereclause,mysql.【任务完成效果图】请按照任务需求将完成的效果图放在下方。任务3使用NaViCat工具创建触发器记录班级表操作日志【任务需求】使用数据库图形化管理工具NaViCat创建触发器,当向班级表中添加数据之后,在班级表日志中将记录相应信息。【任务参考效果图】mysqlSELECT*FROMtb_class_logs;H+二+IidIdatelog_textI1I2023-02-06添加了新的班级信息HH+1rowinset(0.00sec)【任务完成效果图】请按照任务需求将完成的效果

6、图放在下方。任务4使用Workbench工具管理触发器【任务需求】使用数据库图形化管理工具Workbench查看和删除触发器。打开数据库图形化管理工具MySQLWorkbench,登录成功后,单击菜单栏的【新建查询】图标,按照任务需求在SQL脚本编辑窗口编写SQL语句,最后单击【运行】图标或使用快捷键“Ctrl+Enter”,即可查看和删除触发器。【任务参考效果图】SQIFIW 夕 SQL FiIePEventTableTimrgGeatedSQLModeDeerQentCharacter.Da三TEtb.dwAFTER2023-02-0916:1ONLY_FUILjGRrootoohostu

7、tfmMINSERTtb.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)ROPTRIGGERIFEXISTSa

8、fter_nodelete_grade;2Oput0ActxyiOutput【任务完成效果图】任务5实验过程中常见错误解决【任务需求】在实验过程中出现如下图所示的错误,请调试,并写出解决办法。【实验思考】1 .语句结束符冲突多个MySQL默认的语句结束符号;”冲突,如下图所示。mysqlCREATETRIGGERafter_insert- BEFOREINSERTONtb_department- FOREACHROW- BEGIN- INSERTINTOtb_department_logs(date,log_text)- MALUES(CURDATEO,CoNCAT(添加了新的系部信息);ER

9、ROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenearatline6问题原因:解决方案:2 .切换结束标记无效在Windows命令提示符窗口创建完触发器后使用“DELIMITER;”语句切换结束标记无效,如下图所示。mysqlDELIMITER$mysqlCREATETRIGGERafter_nodelete_grade- AFTERDELETEONtb_grade- FOREACHROW- BEGIN

10、- IFstudent_idTHEN- CALLROLLBACK;- ENDIF;- END$Query0K,0rowsaffected(0.01sec)mysqlDELIMITER;问题原因:解决方案:3.创建触发器重复在任务1的基础上再建一个触发器,使得系部表中计算机学院的地址信息不能被更改,但提示触发器己经存在,如下图所示mysqlDELIMITER$mysqlCREATETRIGGERbefore_noupdate- BEFOREUPDATEONtb_department- FOREACHROW- BEGIN- IFdepartment_name=计算机学院”THEN- SETNEW.department_address=OLD.department_address;- ENDIF;- END一$ERROR1359(HYOOO):Triggeralreadyexistsmysql问题原因:解决方案:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号