创建及使用触发器
触发器(TRIGGER)是MySQL的数据库对象之一,从5.0.2版本开始支持。该对象与编程语言中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发、激活从而实现执行。有点类似DOM中的事件。
那么为什么要使用数据库对象触发器呢?在具体开发项目时,经常会遇到如下实例:
<1> 在学生表中拥有字段学生姓名,字段学生总数,每当添加一条学生信息时,学生的总数就必须同时更改。
<2> 在学生表中还会有学生姓名的缩写,学生住址等字段,添加学生信息时,往往需要检查电话、邮箱等格式是否正确。
上面的例子使用触发器完成时具有这样的特点,需要在表发生改变时,自动进行一些处理。MySQL在触发DELETE/UPDATE/INSERT语句时就会自动执行所设置的操作,其他SQL语句则不会激活触发器。
创建触发器
使用帮助命令查看具体的语法:
CREATE
1 [DEFINER = { user | CURRENT_USER }]
2 TRIGGER trigger_name
3 trigger_time trigger_event
4 ON tbl_name FOR EACH ROW
5 trigger_body
语法中
trigger_name:触发器的名称,不能与已经存在的触发器重复;
trigger_time:{ BEFORE | AFTER },表示在事件之前或之后触发;
trigger_event::{ INSERT |UPDATE | DELETE },触发该触发器的具体事件;
tbl_name:该触发器作用在tbl_name上;
查看及删除触发器
查看触发器
SHOW TRIGGERS 语句查看触发器信息
SHOW TRIGGERS;
在 triggers 表中查看触发器信息
删除触发器
DROP TRIGGER 触发器名;
DROP TRIGGER trig_book ;
DROP TRIGGER trig_book2 ;