文章目录
-
- 了解什么是MySQL触发器
- 为什么要使用MySQL触发器
- 添加
- 删除
- 修改
- 常见的问题以及解决方式
了解什么是MySQL触发器
是由事件来触发某种特定操作,其中事件包含insert语句,update语句和Delete语局等语句,数据库执行这些事假时,就会激活触发器执行相关的操作,可以保证某些操作之间的一致性
为什么要使用MySQL触发器
好处 :
- 数据完整性保护:通过在触发器中定义约束和验证逻辑,可以确保在数据插入、更新或删除时满足特定的业务规则,从而保护数据的完整性和一致性。
- 自动化操作:触发器可以自动执行一些常见的数据库操作,如数据验证、数据转换、数据计算等,从而减少编写重复代码的工作量。
- 数据审计和日志记录:触发器可以记录对数据库表的修改操作,包括修改前后的数据值、修改时间、修改者等信息,这些信息可以用于审计和追踪数据变更。
- 替代定时任务:在某些情况下,可以使用触发器替代定时任务来执行一些周期性的数据库操作,如定期清理数据、定期更新数据等。
坏处:
- 难以维护和调试:在数据库内部执行的,不易进行调试和维护。当触发器的逻辑出现问题时,排查问题可能会比较困难,尤其是当涉及多个触发器时。
- 可能影响性能:触发器的执行需要消耗数据库的资源,当触发器的逻辑复杂或数据量大时,可能会影响数据库的性能。此外,如果触发器中的操作涉及大量的数据读取或写入操作,可能会增加数据库的I/O负担。
- 可能产生死锁:如果在触发器中使用了锁机制,可能会产生死锁现象,进而影响数据库的稳定性。因此,在使用触发器时需要谨慎考虑是否需要使用锁机制,并确保触发器的逻辑不会导致死锁。
- 隐式调用容易被忽视:触发器的隐式调用容易被忽视,这可能导致在数据修改时未执行预期的触发器操作,从而引发数据不一致或其他问题。
添加
- 这时你观看自己的表就会发现 写在触发器中的表 会在你运行完添加语句后自动添加
- 再添加时也可以写成多个添加
删除
- OLD 引用被删除行的值的关键字。只删除与OLD.值匹配的数据
修改![](https://img-blog.csdnimg.cn/direct/fc8359d9ffe84b3e84ef470539acc9b5.png)
常见问题
1.This version of MysQL doesn't yetsupport 'multiple triggers with the same actiontime and event for one table![](https://img-blog.csdnimg.cn/direct/613e7f6b418341d4a484d42202be195c.png)
- 对一个表具有相同动作时间和事件的多个触发器
- 你可以通过
- 输入use 你所需要进入的库名 ; 注意这里的;不可以忘记
- 查询所有的触发器的命令是 show triggers;
- 删除的触发器的命令是 ***drop trigger 这里就是;
- 之后重新运行就可以了
2. This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
这个版本的MysQL还不支持“同一个表具有相同动作时间和事件的多个触发器”
- 解决方式跟上一个问题一样查询到删除即可