`
zhengxuezhou
  • 浏览: 151350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于查询插入以及查询更新实例sql&触发器示例

 
阅读更多

工作札记

 

查询插入:

insert into tempdevice(dpath,dname) select ttt1.devicepath,ttt1.displayname
          from tblnmdevice ttt1
          join tblbusinessdeviceunion ttt2 on ttt1.devicepath =
                                              ttt2.devicepath
          join tblbusinesssys ttt3 on ttt3.tbluuid = ttt2.businessid
         where ttt3.systemcode = '/NM_Topo/A33'  ;

 

查询更新:

update tblnmdevice tt1
   set tt1.displayname = (select t1.displayname||'路由器'
                            from tblnmdevice t1
                           where t1.devicepath = tt1.devicepath)
 where tt1.devicepath in
       (select ttt1.devicepath
          from tblnmdevice ttt1
          join tblbusinessdeviceunion ttt2 on ttt1.devicepath =
                                              ttt2.devicepath
          join tblbusinesssys ttt3 on ttt3.tbluuid = ttt2.businessid
         where ttt3.systemcode = '/NM_Topo/A33' and ttt1.displayname not like '%路由器' and ttt3.pid is not null)
;

 

 

触发器示例:

 


prompt
prompt Creating trigger aiud_nmdevice
prompt ======================================
prompt

 

CREATE OR REPLACE TRIGGER aiud_nmdevice
  AFTER INSERT OR UPDATE OR DELETE ON tblnmdevice
FOR EACH ROW
DECLARE
    v_count Number(20);
    v_tablename VARCHAR(36) := 'Tblnmdevice';
    v_uploadtype VARCHAR(50) := 'upload_actionlog';
    v_primaryKey VARCHAR(36) := 'devicepath';
BEGIN

    IF inserting THEN
      IF :new.operationstatus IS NULL THEN

      INSERT INTO tbluploadactionlog (logid, logtype, actiontype, tablename, dataid, actiontime, actionstate,dataname)
      VALUES (SEQ_UPLOADACTION.Nextval, v_uploadtype, '1', v_tablename, :new.devicepath, SYSDATE, '1', v_primaryKey);

      END IF;
    ELSIF updating THEN
     
        SELECT COUNT(log.logid) INTO v_count FROM tbluploadactionlog log WHERE log.dataid =:new.devicepath AND log.actiontype ='2';

        IF v_count = 0 THEN
          INSERT INTO tbluploadactionlog (logid, logtype, actiontype, tablename, dataid, actiontime, actionstate, dataname)
          VALUES (SEQ_UPLOADACTION.Nextval, v_uploadtype, '2', v_tablename, :new.devicepath, SYSDATE, '1', v_primaryKey);
        ELSIF v_count <> 0 THEN
          UPDATE tbluploadactionlog actionlog SET actionlog.actiontime = SYSDATE
          WHERE actionlog.dataid =:new.devicepath AND actionlog.actiontype='2';
        END IF;
     

    ELSIF deleting THEN
      IF :old.operationstatus IS NULL THEN

      INSERT INTO tbluploadactionlog (logid, logtype, actiontype, tablename, dataid, actiontime, actionstate, dataname)
      VALUES (SEQ_UPLOADACTION.Nextval, v_uploadtype, '3', v_tablename, :old.devicepath, SYSDATE, '1', v_primaryKey);

      END IF;

    END IF;
END aiud_nmdevice;
/

 

分享到:
评论

相关推荐

    SQL触发器使用实例

    ### SQL触发器使用实例解析 #### 一、触发器概述 在数据库管理中,触发器是一种特殊类型的存储过程,它可以在特定的事件(如插入、更新或删除操作)发生时自动执行。触发器的主要作用是确保数据完整性,通过在特定...

    sql触发器语法兼实例

    ### SQL触发器语法兼实例 #### 一、触发器简介 触发器是一种特殊的存储过程,它可以在用户尝试对指定的表进行数据修改操作时自动执行。这种机制在数据库管理中非常有用,因为它可以帮助确保数据的一致性和完整性。...

    sql 触发器 详解与实例

    【SQL触发器详解与实例】 SQL触发器是数据库管理系统中的一种特殊存储过程,它与普通存储过程的主要区别在于,触发器并非由用户直接调用,而是由特定的数据库操作(如INSERT、UPDATE、DELETE)自动触发执行。触发器...

    sql server触发器.rar

    - 在一个示例中,我们可以创建一个INSERT触发器,确保每当向员工表插入新记录时,都会自动计算员工的入职年份。 - 另一个例子是使用UPDATE触发器来实现参照完整性的级联更新,当父表的某个字段更改时,自动更新...

    SQL—— 触发器——示例程序

    此程序基于学生选课的实例,通过学生在修改其选课记录的事件引起了触发器。 次资源包含完整的数据库文件。。。

    sql触发器实例加解析

    ### SQL触发器实例加解析 #### 一、SQL触发器概念与作用 SQL触发器是一种存储过程,它在数据表中的数据被修改(插入、更新或删除)时自动执行。触发器可以用来确保数据完整性,并且可以实现复杂的业务逻辑。 ####...

    SQL SERVER 触发器视频讲解

    在SQL Server中,触发器是一种特殊的存储过程,它在数据库中的特定事件发生时自动执行,如数据插入、更新或删除操作。本视频讲解将深入探讨触发器的创建、编辑、修改及其功能,帮助用户更好地理解和应用这些技术。 ...

    SQL_Server触发器创建、删除、修改、查看示例

    ### SQL Server 触发器创建、删除、...以上就是关于 SQL Server 触发器的创建、删除、修改和查看的相关知识点及示例。通过这些操作,你可以有效地管理和维护数据库中的触发器,从而更好地控制数据的一致性和完整性。

    SQL触发器实例讲解.pdf

    SQL 触发器实例讲解 SQL 触发器是一种特殊的存储过程,用于在数据库中执行某些操作时自动触发某些事件。触发器可以应用于 Insert、Update、Delete 事件等。 什么是触发器? 触发器是一个特殊的存储过程,在 SQL ...

    SQL触发器应用实例(Delphi+数据库)..rar

    在这个"SQL触发器应用实例(Delphi+数据库)"的压缩包中,我们可能会看到如何在Delphi编程环境中利用SQL触发器来增强数据库应用程序的功能。 Delphi是一种流行的面向对象的编程语言,由Embarcadero Technologies开发...

    SQL_Server触发器创建、删除、修改、查看示例教程.doc

    SQL Server 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。 触发器的基本概念 触发器可以用来...

    一个SqlServer触发器的Delphi应用源代码..rar

    本资源“一个SqlServer触发器的Delphi应用源代码..rar”显然是一个结合了这两个技术的实例,旨在帮助开发者了解如何在Delphi中使用SQL Server触发器。 触发器是SQL Server中的一个重要特性,它是一种存储过程,由...

    SQL触发器实例讲解

    三、SQL触发器实例 - 示例1:创建一个UPDATE触发器,当学生表中的学号更新时,更新借书记录表中的学号。 - 示例2:创建一个DELETE触发器,当删除学生表中的记录时,同时删除借书记录表中的相关记录。 触发器中涉及...

    SQL触发器的使用方法,

    下面是一个关于卷烟库存和销售的SQL触发器实例,这将帮助我们理解如何在商品交易中应用触发器,确保库存的准确性和及时性: ```sql CREATE TRIGGER trg_SaleUpdate ON Sales AFTER INSERT, UPDATE AS BEGIN IF ...

Global site tag (gtag.js) - Google Analytics