• 触发器


    A、什么是触发器

      概念:触发器是一种特殊类型的存储过程,在满足条件定义条件操作时触发,并自动执行触发器中预先设定好的定义的语句集合

      简述:触发器是特殊的存储过程;满足条件就触发(自动执行)预先编译的sql集合

    B、好处

      1、安全姓:可以基于数据库的值使用户具有操作数据库的某种权利

      2、审计:可以跟踪用户对数据库的操作

      3、实现复杂的数据完整 性规划

      4、提供了运行计划任务的另一种方法

    C、触发器的基本语法

      1、创建语法

        a、关键字:trigger

        b、语法 ( #:注释)

          create trigger 触发器名
          after|before         #触发时间
          insert|update|delete    #触发事件
          on 表名             #触发对象
          for each row          #针对表中每一条数据都会触发
          begin
              sql操作;
          end

        c、注意

          1)触发器名tr_XXX

          2)触发时机:after|before

            before 触发事件之前

            after 触发事件之后

          3)触发事件 --因为什么事触发

            insert delete update --DML操作

            DQL 数据查询语句

          4)触发对象就是表,也就以为,触发器时建立在表上的

          5)for each row 表示任何一条记录上的操作满足触发事件都会触发该触发器

      2、删除语法

        a、关键字:drop

        b、语法:drop trigger 触发器名;

      3、查看视图结构语法

        a、关键字:show create

        b、语法:show create trigger 触发器名;

    D、after和before的区别

      1、after 触发事件之后

        注意:触发时:曾删改动作是否已经完成了?

          答:已经完成了增删改动作,新数据已经填入表中,如果需要操作数据,可以使用增删改完成。

      2、before 触发事件之前

        注意:

          a、before前置触发器,触发时:增删改动作是否已经完成了?

          答:没有完成。增删改动作会等待before前置触发器操作完成后,才会继续。

          b、before前置触发器会首先获取要增改的值 新数据存new,旧数据存old 等待我们去操作数据,可以使用set new.字段=XXX;来修改数据 改完之后,不需要做任何操作,增删改动作会继承。

      3、new和old的区别和用法

        a、

        

         b、old表只读的,而new表则可以在触发器中使用set赋值操作,避免重复触发器

        c、新增new,删除old,修改先old再new;新增是新数据,修改是先旧数据后新数据,删除是旧数据;新数据存new,旧数据存old

  • 相关阅读:
    半主机模式和_MICROLIB 库
    工作中常用的git命令
    Mybatis延迟加载参数配置
    JUnit展示图形化测试结果
    可读、可维护、可扩展,原则、模式与重构
    乐观锁和悲观锁
    HashMap实现原理和底层数据结构?
    视图有啥用?
    单例模式常见有哪几种?
    RPC服务和HTTP服务的区别
  • 原文地址:https://www.cnblogs.com/dyxg/p/13630523.html
Copyright © 2020-2023  润新知