数据库中的触发器是以针对数据库的操作(增删改)而被调用的特殊存储过程。通常也叫事件。触发器实现了相关表的更新处理自动化的机制。
触发器并不是直接被调用执行的,而是针对具体表的操作时被调用,也就是说在创建触发器时,需要指定针对哪个表的操作才能成为触发装置,而这个表就是触发器调用方的表。
基本语法:
触发器语法
条件决定触发器运行的时刻:
由事件名和发生时刻决定。事件名就是指insert、update、delete等操作。并不是严格意义上的insert、update、delete命令,像replace、load data infile等伴随有数据插入动作的处理都属于insert类。
发生时刻是指决定触发器在事件发生之前还是发生之后,指定before或after其中之一即可。
for each row:
固定值,表示触发器是以行为单位执行的,例如当用户执行删除2条记录行时,意味着与删除动作相关的触发器也会被执行2次。
例子:创建日记表person_log存放person表被删除的行,当删除person的记录时将其保存到person_log表里。
1、先创建一个空的person_log表用来存放被删除的记录。
2、创建一个触发器del_person,执行删除操作后将记录插入到person_log表。
触发器person_log
3、从person表中执行删除记录操作来触发事件
4、查看person_log表结果:
结果:从person表执行删除一条记录后会触发person_log表中增加被删除的记录。
触发器特有的特征:old/new关键字
根据变更前后的数据记录来使用。
可使用的关键词与事件关系:
联系客服