zoukankan      html  css  js  c++  java
  • 触发器

    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

  • 相关阅读:
    重登陆模式 --ESFramework 4.0 快速上手(07)
    信息处理,分而治之-- ESFramework 使用技巧
    ESFramework 4.0 有哪些优点?
    铁血规则:事件预订与取消预订
    聊天系统Demo,增加文件传送功能(附源码)-- ESFramework 4.0 快速上手(14)
    判定生死的心跳机制 --ESFramework 4.0 快速上手(07)
    Spring中bean注入前后的一些操作:
    Spring中注入List,Set,Map,Properties
    Spring MVC视图解析器:配置多个视图解析器的优先级
    Spring 3 MVC And JSR303 @Valid Example
  • 原文地址:https://www.cnblogs.com/dyxg/p/13630523.html
Copyright © 2011-2022 走看看