Mysql 触发器

触发器

    触发器的器就是绑定一组SQL语句,触发器的触发就是在某一时刻某一对象,的某个范围上发生某一事件时,执行触发器绑定的那一组SQL语句。

某一时刻:before、after

某一事件:insert、update、delete

某一对象:某个表

某个范围:记录或表

一个表上最多可以设置6个触发器

创建触发器

语法:

第1步:更改结束符

delimiter 符号

第2步:定义触发器

    create triggers 触发器名 时刻 事件 on 对象 【for each row】;

create triggers 触发器名 before|after insert|delete|update on 表 字段名 【for each row】;

 

begin

    -- sql语句

end

//

第3步:更改结束符

delimiter ;

需求:

    一个定单表,库存表

创建触发器

查看触发器

语法:

    show triggers;

查看触发器创建的语句

show create trigger 触发器名

示例:

触发器的使用:

触发器的记录

    当触发器执行时,对触发的表的记录进行操作时,会进行相应记录;操作之前会记录在一个对象上(old或:old),操作之后也会记录一个对象(new或:new)。

操作:        old                    new

insert        null                    新的记录

update        原记录信息            新记录的信息

delete        原记录信息            null

如何获取原记录或新记录的字段信息?

语法:

old或new.字段名

old.id        old.num

new.id        new.num

示例:

操作:

【for each row】表示每一行都会触发一次。

    触发触发器的sql可能一次更改多条记录。for each row表示每产生或更新一条记录触发器执行一次。如果省略,表示无论更改多少条记录,只触发一次。

删除触发器

drop trigger 触发器名

posted @ 2016-04-06 16:13  尼农小道  阅读(201)  评论(0编辑  收藏  举报