触发器
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行
触发器语法
create trigger trigger_name trigger_time trigger_event on tb_name for each row
begin
trigger_stmt
end
trigger_name:触发器的名称
tirgger_time:触发时机,为BEFORE(事件发生前)或者AFTER(事件发生后)
trigger_event:触发事件,为INSERT、DELETE或者UPDATE
tb_name:表示建立触发器的表名
trigger_stmt:触发器的程序体
CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW
BEGIN
执行语句列表
END
删除
drop trigger trigger_name;
查看
show create trigger trigger_name;
实例
-- student 表中有 ssex 字段表示学生性别
-- 设计一个触发器审查性别字段的插入
create trigger tri_checksex before insert on student for each row
begin
if new.ssex != '男' and new.ssex != '女' then
set new.ssex = '未知';
end if;
end
new 和 old
使用 insert 语句时:new 表示将要或者已经新增的数据
使用 update 语句时:new 表示将要或者已经修改的数据,old 表示将要或者已经被删除的数据
使用 delete 语句时,old表示将要或者已经被删除的数据