创建触发器
触发器是个特殊的存储过程,不同的是存储过程需要通过call来调用,而触发器不需要使用call来调用,只需要当定义的事件发生后就会自动被调用。
1.创建单执行语句的触发器
CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_stmt
tigger_time可以取值before和after
trigger_event可以取值insert、delete、update
trigger_stmt是要实现的目标。
比如当在表tb_index_zone中新增一条记录后,在tb_student表中增加一条记录
CREATE TRIGGER addStu before insert ON tb_index_zone FOR EACH ROW insert into tb_student values ('10','123456789012','10');
查看触发器使用:show triggers \G;
2.创建具有多个执行语句的触发器
CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW
BEGIN
多个sql语句
END
比如当在表tb_index_zone中新增一条记录后,在tb_student表中增加两条记录
CREATE TRIGGER addMultStu before insert ON tb_index_zone FOR EACH ROW
BEGIN
insert into tb_student values ('2,'TOM','11');
insert into tb_student values ('3,'TOM2','12');
END
第二种查看trigger的方式:
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE 自定义条件;
删除触发器的方式:
DROP TRIGGER [DB].[trigger_name]
例如:DROP TRIGGER test_db.addMultStu;