【MySQL】5.触发器
1. 触发器概述
触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行D
文章目录 1. 触发器概述 触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动条用。 触发器什么时候才能执行? 在MySQL中,只有执行insert,delete,update操作时才能触发触发器的执行 触发器有什么实际用途? 触发器的这种特性可以协助应用在数据库端确保数据的完整性 , 日志记录 , 数据校验等操作 触发器有什么需要注意的? 使用别名 OLD 和 NEW 来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。 触发器有什么特性? 2. 触发器的相关语法 创建只有一个执行语句的触发器
创建有多个执行语句的触发器
注意:这里的for each row是指每一行的意思 删除触发器
查看所有触发器
例子
3. 触发的NEW与OLD MySQL 中定义了 NEW 和 OLD,用来表示触发器的所在表中,触发了触发器的那一行数据,来引用触发器中发生变化的记录内容,具体地: 触发器类型触发器类型NEW 和 OLD的使用 INSERT 型触发器 NEW 表示将要或者已经新增的数据 UPDATE 型触发器 OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数据 DELETE 型触发器 OLD 表示将要或者已经删除的数据 使用方法: NEW.columnName (columnName为相应数据表某一列名) 使用例子
4. 总结 MYSQL中触发器中不能对本表进行 insert ,update ,delete 操作,以免递归循环触发尽量少使用触发器,假设触发器触发每次执行1s,insert table 500条数据mysql触发器,那么就需要触发500次触发器,光是触发器执行的时间就花费了500s,而insert 500条数据一共是1s,那么这个insert的效率就非常低了。触发器是针对每一行的;对增删改非常频繁的表上切记不要使用触发器,因为它会非常消耗资源。 参考: (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |