zoukankan      html  css  js  c++  java
  • 1月15日 触发器

    一、触发器是一类特殊的存储过程,在对表update、insert或delete语句是自动执行

    二、触发器的操作:

      (1)、创建:

    格式:

    CREATE trigger 触发器名 on 表名 for insert,update,delete

    AS

    触发器的内容
    GO

    (2)、修改:

    格式:

    ALTER trigger 触发器名 on 表名 for insert,update,delete

    AS

    触发器的内容
    GO

    (3)、删除:

    DROP trigger 触发器名 

    三、触发器中有两个临时表:

       inserted表:inserted表中存放的是 新增的或是修改之后的数据

       deleted表:deleted表中存放的是 删除的或是修改之前的数据

    这两个表结构跟母表是一样的,母表有多少列,两个临时表就有多少列、列名也一样。

    四、触发器的类型:

     AFTER类型:这是最常见的类型,一般不标明类型都默认是AFTER类型。

                     AFTER类型是先执行修改、删除、添加等命令,然后才执行触发器。

    INSTEAD OF 类型:INSTEAD OF 是替换的意思,INSTEAD OF 类型也就是说用触发器来代替删除、更改的工作。

    例1:现有一个minzu表,写一个触发器,每次更改minzu表中内容时都会提示 '改变一条记录'的触发器

    minzu表

    执行:                                                                                                   结果:

                            

    例2:用select显示inserted表、deleted表的数据

    有表Fruit:

    触发器:

    执行结果:                                                                                                         FRUIT表:

                

    例3:水果表改变number列时,向orderdetails表中添加数据。

    fruit表见例2。

    orderdetails表现在是空的;

    触发器:

    执行结果:

    例4:instead of触发器,删除info表的数据时,先删除work和family的数据,再删info相应的数据。

    因为三个表之间相互约束,要想删除就得连带关联项一起删除

    info表:

    work表:

    family表:

    触发器:

    执行:

    所有与code='p003'所对应的人的信息就全删除了

    结果:

    info表:                                                                                                     

         

      work表:

     family表:

  • 相关阅读:
    java JSONObject
    android 8.0 悬浮窗 最简demo
    使用adb 命令(atrace)抓起systrace的方法。
    使用python处理selenium中的获取元素属性
    使用adb/Linux获取网关ip
    Requests text乱码
    python-uiautomator2
    adb命令 判断锁屏
    缓存穿透、缓存击穿与缓存雪崩
    ReentrantLock重入锁详解
  • 原文地址:https://www.cnblogs.com/tzq9308/p/4226062.html
Copyright © 2011-2022 走看看