MySQL触发器

触发器

触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行

触发器语法

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表示将要或者已经被删除的数据

你可能感兴趣的:(MySQL触发器)