• 触发器


    一、什么是触发器?
    一段SQL代码,挂到某个表的某个增、删、改的操作上。
    当这个表执行相应的操作时,就会触发这段相应的SQL代码。
    触发器与存储过程的区别:
    1.存储过程是独立于表存在的,触发器需要依附某个表的某个操作。
    2.存储过程需要使用名称去调用才能执行,触发器则在表的操作过程中自动被触发调用。

    二、触发器的分类:
    after触发器
    ——先执行表的增删改的操作后,再触发触发器。

    instead of 触发器
    ——不执行表的增删改操作,它的这些操作只起到取触发触发器的功能。

    三、创建触发器的语法
    create trigger 触发器名 on 表名 after/instead of insert/delete/update
    as
    go

    四、触发器中两个临时表:inserted,deleted
    这两个表是临时表,触发器执行完成后,会自动消失,再次触发会再次创建。
    这两个表的结构与on后面的那表的结构是一样的(列名、列数、类型)。而且里面只有一条记录。

    插入操作--把新增的数据放到inserted表中。
    删除操作--把删除的数据放到deleted表中。
    修改操作--把旧数据放到deleted表中,把新数据放到inserted表中。

    五、对两个临时表的使用。
    从两个临时表中把数据取出来放到变量中,以备后面的使用。

    案列一:做一个汽车变动表,汽车的增加、删除后都往变动表中增加一条。用触发器来实现。after

     

    案例二:把Info的数据删除,删除之前先用触发器把Work和Family两个表中的相应数据删掉。instead of触发器

     
  • 相关阅读:
    gitlab+jenkens+maven私服
    记录一次gitlab+jenkins入坑到排坑的过程
    python进阶之路一,变量、运算符、判断、while循环
    cat EOF追加与覆盖
    tcpdump使用
    iptables学习
    Java生产消费模型—ArrayBlockingQueue详解
    Java泛型详解(透彻)
    Java源码初探_logging日志模块实现
    Java设计模式学习总结
  • 原文地址:https://www.cnblogs.com/tianxuan/p/4730580.html
Copyright © 2020-2023  润新知