目录:
触发器定义 触发器特性 触发器的创建 删除触发器
触发器定义
与表有关的数据对象,在满足某种条件时,被动执行的SQL语句。
触发器特性:
① 有begin,end的结构体(多条SQL语句,单条SQL是没有的)
② 需要指定触发的条件:insert,update,delete
③ 有指定的触发事件:before,after
④ 指定触发的频率:针对每一行的数据变化去执行SQL语句
⑤ 触发器定义在表上
触发器的创建:
语法:
create trigger 触发器名称
before|after
insert|update|delete
on 表名
for each row 业务逻辑;
代码实例:
当A表中插入数据后,B表中也插入一条数据
create trigger trigger_insert
after
insert
on A
for each row
insert into B(comments) values('插入数据');
详解:
after:为触发器的触发时间。 insert:为触发器的触发条件。
trigger_insert:为触发器名称。
comments:为B表中的一个字段名称。
语法:
delimiter $
create trigger 触发器名称
before|after
insert|update|delete
on 表名
for each row
begin
insert ...;
update ...;
end;$
代码实例:
在A表中插入数据前,B表中插入2条数据
DELIMITER $
CREATE TRIGGER trigger_insert_before
BEFORE
INSERT
ON A
FOR EACH ROW
BEGIN
INSERT INTO B(comments,name) values('insert1',NEW.name);
INSERT INTO B(comments,name) values('insert2',NEW.name);
END;$
详解:
delimiter :作用类似于在jQuery中的符的让渡。
new:after|before insert,用于获取将要插入的数据
old:after|before update|delete,用户获取已经修改的或已经删除的数据
删除触发器
语法:
drop trigger 触发器名称;