什么是触发器?
触发器就是在某个表上预先设定好发生某个事件(增/删/改)的时候来完成某些任务的一种代码机制。简单的来说就是自定义事件
创建触发器:
create trigger 触发器名 触发时机 触发事件 on 表名 for each row 要执行的代码;
- 触发器名:一个名字,在一个数据库中唯一。
- 触发时机:事件之前触发还是之后,只有两个可用值:before,after。
- 触发事件:表示一个表上什么事件发生的时候会触发,只有3个可用值:insert,update,delete。
- 要执行的代码:要执行的一条或多条语句(但不能有select语句),用begin和end以便写多条语句。其中关键字old代表“旧行数据”,new代表“新行数据”。引用update前的列就用old,引用update后的列就用new,如old.username。
CREATE TRIGGER t1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(id) values(new.id);
END;
一个表最多有6个触发器,因为触发时机、触发事件的值的数量固定。
删除触发器:
drop trigger [if exists] 触发器名;