数据库原理及应用MySQL-触发器部分的知识点整理
数据库原理及应用MySQL中触发器部分有关的知识点整理,包括再MySQL中创建、删除、查看触发器的相关知识点,并包括相关的语法和语句。还有使用触发器应该注意的一些要点。 适合数据库专业的或是计算机相关专业的朋友浏览,更适合正在学习相关知识的大学生或是准备软考的朋友用来进行体系化的学习或者复习知识点和语句的用法。 其实触发器就是一种较为特殊的存储过程,其中还有触发器的优缺点和关于存储过程的部分提及。 【数据库原理及应用MySQL-触发器部分的知识点整理】 触发器是MySQL数据库中一个重要的特性,主要用于维护数据的完整性和一致性。它是一种特殊类型的存储过程,由特定的数据库事件(如INSERT、UPDATE或DELETE)自动触发执行。以下是关于MySQL触发器的详细说明: **一、触发器的概念** 1. **概念**:触发器(Trigger)是MySQL提供的一种数据库对象,它在满足特定条件(如数据修改)时自动执行,以确保业务规则得到遵循。 2. **特点**:触发器的执行不依赖于程序调用,而是由数据库事件触发,如对表的插入、更新或删除操作。 **二、触发器的作用** 1. **目的**:触发器用于实现更复杂的业务逻辑,增强数据的完整性,确保参照完整性和数据一致性。 2. **功能**:触发器可以: - 弥补主键和外键约束的不足,实现更精细的数据验证。 - 自定义错误消息,提供定制的反馈。 - 撤销或回滚违反引用完整性的操作。 - 在多表关联的情况下,保持数据的一致性。 **三、触发器的工作原理** 1. **临时表**:MySQL提供NEW表和OLD表,分别记录数据更改前后的状态。这些表只在触发器执行期间存在,不可修改。 2. **NEW表与OLD表**: - INSERT:NEW表存放新插入的记录,OLD表无记录。 - UPDATE:NEW表存放更新后的记录,OLD表存放更新前的记录。 - DELETE:NEW表无记录,OLD表存放被删除的记录。 **四、触发器的分类** 1. **按事件**:INSERT触发器、UPDATE触发器、DELETE触发器。 2. **按时间**:BEFORE触发器(先于操作执行)、AFTER触发器(后于操作执行)。 - INSERT/UPDATE/DELETE触发器可以是BEFORE或AFTER类型,影响触发程序的执行顺序。 **五、创建触发器的语法** ```sql CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt ``` 参数说明: - trigger_time:触发时间,before或after。 - trigger_event:触发事件,insert、update或delete。 - FOR EACH ROW:行级触发器,每次受影响的行都会执行触发程序。 - trigger_stmt:触发程序主体,包含执行的SQL语句。 **六、触发器使用案例** 1. AUTO_INCREMENT列在INSERT触发器中的处理。 2. 在BEFORE UPDATE触发器中,可以修改NEW表中的数据。 3. DELETE触发器只涉及OLD表,且是只读的。 **七、管理触发器** 1. 使用`SHOW TRIGGERS;`查看所有触发器信息。 2. `SHOW CREATE TRIGGER 触发器名;`查看触发器创建语句。 3. 删除触发器使用`DROP TRIGGER [IF EXISTS] [SCHEMA_NAME .] TRIGGER_NAME;`。 **八、使用触发器的注意事项** 1. 触发器中的SELECT不能返回结果集。 2. MyISAM存储引擎的触发器不保证原子性。 3. 使用触发器维护外键时,需先处理子表,再处理父表。 4. 不能在触发器中对触发表执行UPDATE操作。 5. 在BEFORE触发器中,可以修改数据,而在AFTER触发器中,对数据的修改是不允许的。 触发器在MySQL中扮演着维护数据完整性和一致性的重要角色,但过度使用可能会导致性能下降,因此应谨慎设计和使用。























- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源


