[MySQL]什么是触发器以及触发器的使用

一.什么是触发器

  • 举例:其实触发器的含义在生活中也是广泛的存在,例如当我们按下灯的开关,此时灯亮了,那么开关就是触发器,当我们按下时,就完成了触发的动作,而灯亮则是反馈的结果
  • 触发器用来在某些操作时,“自动”执行一些操作。
  • 触发器之能检测三种动作 insert、update、delete ,而触发器还可选择在动作完成前执行还是完成后执行即brfore/after
  • 所以一张表最多只能有6个触发器

二.如何定义和使用触发器(trigger)

  • 定义语法格式:
    create trigger 触发器名 before|after 事件 on 表名 for each row 触发器语句;
    *for each row 是代表任何记录执行对应操作都会触发器。
    *事件就是insert delete update操作中的一个。
    *触发器语句就是触发器触发时要执行的语句。
  • 如果需要包含多个触发语句时使用begin end
    CREATE TRIGGER 触发器名
    before|after
    insert|update|delete
    ON 表名
    FOR EACH ROW
    BEGIN
    触发语句1;触发语句2;…触发语句n;
    END;

    注意:
    MySQL中;默认是语句结束符,在命令行使用时有问题
    命令行使用多个触发语句时应当先修改语句结束符($$)
  • 如何修改语句结束符-delimiter
    delimiter @@//此时结束符就是@@ 当使用完成后可以在通过dlimiter ;改回成‘;’

三.触发器常用命令

  • show triggers;//查看所有触发器
  • select * from triggers;//在information_schema中查看triggers表
  • show create trigger 触发器名;//查看触发器的创建语句
  • drop trigger 触发器名;//删除触发器

四.触发器的新旧记录

  • 触发器主要事件是三种:
    insert:新增记录,没有旧纪录;
    delete:删除旧纪录,没有新纪录;
    update:有变更后的新纪录,也有被变更的旧纪录;
  • 可以使用old|new来引用这些记录
    在for each row后(即触发语句)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值