MySQL触发器

MySQL触发器是与表关联的数据库存储程序,用于响应关联表中发生的事件

触发器是一个无痕的操作

基本语法

reate trigger 触发器名称 触发时机 触发事件 on 表 for each row 触发顺序
    begin
        内容
    end 

创建触发器的选项

触发时间

1.before 在表中数据发生改变前的状态

2.after 在表中数据发生改变后的状态

触发事件

1.insert 插入操作

2.update 更新操作

3.delete 删除操作

触发顺序

1.follows 其他触发器名称 新触发器在现有的触发器之后激活

2.precedes 其他触发器名称 新触发器在现有的触发器之前激活

例子

delimiter $$
create trigger insert_tri before insert on sh_user_shopcart for each row
    begin
        declare stocks int default 0;
        select stock into stocks from sh_goods where id=new.good_id;
        if stocks<=new.goods_num then
            set new.goods_num:=stocks;
            update sh_goods set stock=0 where id=new.goods_if;
        else
            update sh_goods set stock=stocks-neww.goods_num where id=new.goods_id;
        end if;
    end;
    end;
    $$;
    delimiter;

在insert发生之前执行begin与end之间的内容

删除触发器

drop trigger [if exists] [数据库.]触发器名;

你可能感兴趣的:(MySQl,mysql,数据库,触发器)