关于触发器你所要知道的

触发器
触发器

触发器是是在执行insert,update,delete语句时自动执行存储过程的过程。

注意:触发器与select无关,只与insert,update,delete有关。它是自动执行的。

insert,update,delete的执行原理
  • insert语句是在执行时直接向表中添加一条记录。当执行insert触发器时,触发器本身会创建一张临时的表,该表名称叫做NEW。
  • delete语句是在执行时直接将表中的数据删除。当执行delete触发器时,触发器本身会创建一张临时的表,该表名称叫做OLD。
  • update语句在执行时先执行delete语句,在执行insert语句。当执行update触发器时,触发器本身会创建两张临时的表,这两张表的名字分别叫做OLD和NEW。
触发器执行的时机

可以在语句执行前触发(before触发),也可以在语句执行后触发(after触发)。

例子:在userinfo表中定义一个触发器,同时向userdetail表添加记录。

  • 创建userdetail表

    CREATE TABLE userdetail
    (
        id INT PRIMARY KEY,
        tel VARCHAR(50),
        gender VARCHAR(50)
    )
    
    ALTER TABLRE userdetail
    ADD CONSTRAINT fk_userinfo_userdetail FOREIGN KEY(id)
    REFERENCES userinfo(id);
    
  • 触发器

    DELIMITER $$
    CREATE TRIGGER trRegiserUserDetail
    AFTER INSERT ON userinfo FOR EACH ROW 
    BEGIN
      INSERT INTO userdetail(id)VALUES(NEW.id);
    END $$
    
  • 测试

    INSERT INTO userinfo(username,userpass,state)VALUES('a','a',0)
    
触发器的优缺点

优点:简化代码,自动执行

缺点:换库时需要重新定义。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值