MySQL触发器实验:创建与管理实战

5星 · 超过95%的资源 需积分: 38 6 下载量 66 浏览量 更新于2024-08-05 1 收藏 164KB DOCX 举报
在这个实验文档中,学生李慧敏,学号190301020202,来自19级网络工程二班,进行了一项关于MySQL触发器创建与管理的实验。实验于2021年6月7日在程序设计实验室进行,目标是深入理解触发器的概念、类型、功能以及工作原理,并掌握如何在实际应用中创建、修改和删除触发器,特别是为了维护数据库数据完整性。 实验的核心是围绕MySQL数据库操作,通过实例来学习触发器的应用。首先,学生创建了一个名为"product"的产品信息表,用于存储产品编号、名称、功能、生产厂商和地址等字段。然后,为了记录对product表的操作历史,又创建了一个"operate"表,用于存储操作标识、操作名称和操作时间。 实验要求学生在"product"表上实现三个触发器:BEFOREINSERT(在插入前触发)、AFTERUPDATE(更新后触发)和AFTERDELETE(删除后触发)。这些触发器分别为Tproduct_bf_insert、Tproduct_af_update和Tproduct_af_del。每个触发器的目标是在相应的操作发生时,自动向"operate"表插入一条记录,包括操作类型(如insert、update或delete)和当前的时间。 具体实现如下: 1. **BEFOREINSERT触发器(Tproduct_bf_insert)**: - 使用CREATE TRIGGER语句,设置触发器在产品表(product)的插入操作前(BEFORE INSERT)运行。 - 在FOR EACH ROW子句中,表明触发器会在每一行数据插入时执行。 - INSERT INTO operate语句将自动插入新的操作记录,包括null的操作标识(由系统自动生成)、'Insertproduct'作为操作名称,以及当前时间(now()函数获取)作为操作时间。 2. **AFTERUPDATE触发器(Tproduct_af_update)**: - 类似于BEFOREINSERT,创建一个名为Tproduct_af_update的AFTER UPDATE触发器,表示在产品表的数据被更新后触发。 - 这个触发器同样会插入操作记录,但操作名称变为'Updateproduct',因为数据已经被更新。 3. **AFTERDELETE触发器(Tproduct_af_del)**: - 该触发器在产品表的数据被删除后运行,名称为Tproduct_af_del。 - 当数据被删除时,触发器将插入一条记录,操作名称为'Deleteproduct',并记录操作时间。 通过这个实验,学生不仅掌握了如何在MySQL中创建和管理触发器,还了解了触发器如何在数据操作过程中自动维护数据一致性,增强了对数据库事务处理的理解。完成此类实验有助于提高学生的数据库管理技能,为后续的实际项目开发打下坚实基础。