zoukankan      html  css  js  c++  java
  • 触发器及示例演示

    简介



    触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如

    对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务

    则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。(来自百度:原文链接 ) 从上述解释

    中,可以了解到触发器类似于存储过程。但不像存储过程一样由程序调用,而是当更新、删除等对表进行操作时会自

    动触发执行的sql语句。虽不严谨,但大致上就是这个意思。  


    简单使用 


    1.创建


    CREATE TRIGGER TRIGGER_NAME           ON {TABLE_NAME | VIEW_NAME}           {FOR | After | Instead of }           [ INSERT, UPDATE,DELETE ]           AS           SQL_Statement
    

    ps:Instead of 替代引起触发的sql语句。

        After:用于在执行完update、delete等操作后执行的的sql语句。除此之外instead of可以使用于视图与表。而

    after只能使用于表。

       2.删除

         
      DROP TRIGGER trigger_name

       3.查询

         
       EXEC trigger_name
    


      示例演示


         1.Online_Info 与Offline_Info两个表

         2.当向Offline_Info插入数据时;同时将Online_Info表中的相同卡号(CardNo)的一条数据删除。

         3.知识储备:

          Delete、Insert表
          
          这两个表存在于内存中,并不是像其他数据库的表存储在数据库中。他们总是与被触发器作用的表的内容一

    致。当执行完触发器后,自动删除这两个表的数据。
           

    创建触发器


          
    CREATE TRIGGER deleteOnlineinfo ON Offline_Info
    FOR INSERT
    AS 
    BEGIN
    DELETE Online_Info FROM Online_Info ,inserted 
    WHERE ONLINE_INFO.CardNo =inserted .CardNo 
    END
    

    当执行完成

         就会相应的表的触发器节点下生成相应的触发器如图

         

         当新建完成后,当我们向下机表中插入一条记录后。触发器就会自动删除在上机表中相同卡号的数据。

         

       

  • 相关阅读:
    冲刺第十三天
    冲刺第十二天
    冲刺第十一天
    Android Studio三种运行方法
    第十三周学习进度
    冲刺第一阶段意见评论
    第十二周学习进度
    冲刺第十天
    大二暑假周总结(五)
    大二暑假周总结(四)
  • 原文地址:https://www.cnblogs.com/guziming/p/4232736.html
Copyright © 2011-2022 走看看