mysql 触发器

MySQL触发器是与表操作相关联的数据对象,当指定事件发生时会被调用。触发器包括BEFORE和AFTER两种时间,INSERT、UPDATE、DELETE三种事件,以及FOR EACH ROW的行级触发。示例中展示了INSERT、DELETE和UPDATE触发器的创建,用于在tab1表的操作后影响tab2表的相关记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySql触发器:触发器是一种和表操作有关的数据对象,当触发器所在表触发指定事件 ,将调用该触发器,即表操作时 触发器执行。

* 触发器的创建。

create trigger [触发器名字]
trigger time //触发时间
trigger _event on [表名]
for each row
begin
    语句;

end

*1、trigger time 触发时机   before  和after
*2、trigger_event  触发事件 insert  update   delete
*3、for each row   在触发器中表示每行受影响,触发器都要执行,称之为行级触发器,MySql中必须书写。
*4、new ,old 表示触发器所在表中触发了触发器的那一行数据
*5、在insert型触发器中,new 用来表示将要插入的新数据。
*6、在update型触发器中,old用来表示将要修改的原始数据,new用来表示已经修改的数据。

*7、在delete型触发器中,old用来表示将要被删除的数据。

示例:
    #insert触发器

    drop trigger if exists trigger_tab1;
    create trigger trigger_tab1
    after insert on tab1
    for each row
    begin
insert into tab2(tab2_id) values (new.tab1_id);
    end;
 

    #delete触发器

    drop trigger if exists trigger_tab1_del;
    create trigger trigger_tab1_del
    after delete on tab1
    for each row
    begin
delete from tab2 where tab2_id=old.tab1_id;
    end;

    #update触发器

    drop trigger if exists trigger_tab1_up;
    create trigger trigger_tab1_up
    after update on tab1
    for each row
    begin
update tab2 set tab2_id = new.tab1_id where tab2_id = old.tab1_id;

    end;

小提示:show triggers from  数据库名 :显示指定数据库下的触发器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值