工作札记
查询插入:
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触发器是数据库管理系统中的一种特殊存储过程,它与普通存储过程的主要区别在于,触发器并非由用户直接调用,而是由特定的数据库操作(如INSERT、UPDATE、DELETE)自动触发执行。触发器...
- 在一个示例中,我们可以创建一个INSERT触发器,确保每当向员工表插入新记录时,都会自动计算员工的入职年份。 - 另一个例子是使用UPDATE触发器来实现参照完整性的级联更新,当父表的某个字段更改时,自动更新...
此程序基于学生选课的实例,通过学生在修改其选课记录的事件引起了触发器。 次资源包含完整的数据库文件。。。
### SQL触发器实例加解析 #### 一、SQL触发器概念与作用 SQL触发器是一种存储过程,它在数据表中的数据被修改(插入、更新或删除)时自动执行。触发器可以用来确保数据完整性,并且可以实现复杂的业务逻辑。 ####...
在SQL Server中,触发器是一种特殊的存储过程,它在数据库中的特定事件发生时自动执行,如数据插入、更新或删除操作。本视频讲解将深入探讨触发器的创建、编辑、修改及其功能,帮助用户更好地理解和应用这些技术。 ...
### SQL Server 触发器创建、删除、...以上就是关于 SQL Server 触发器的创建、删除、修改和查看的相关知识点及示例。通过这些操作,你可以有效地管理和维护数据库中的触发器,从而更好地控制数据的一致性和完整性。
SQL 触发器实例讲解 SQL 触发器是一种特殊的存储过程,用于在数据库中执行某些操作时自动触发某些事件。触发器可以应用于 Insert、Update、Delete 事件等。 什么是触发器? 触发器是一个特殊的存储过程,在 SQL ...
在这个"SQL触发器应用实例(Delphi+数据库)"的压缩包中,我们可能会看到如何在Delphi编程环境中利用SQL触发器来增强数据库应用程序的功能。 Delphi是一种流行的面向对象的编程语言,由Embarcadero Technologies开发...
SQL Server 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。 触发器的基本概念 触发器可以用来...
本资源“一个SqlServer触发器的Delphi应用源代码..rar”显然是一个结合了这两个技术的实例,旨在帮助开发者了解如何在Delphi中使用SQL Server触发器。 触发器是SQL Server中的一个重要特性,它是一种存储过程,由...
三、SQL触发器实例 - 示例1:创建一个UPDATE触发器,当学生表中的学号更新时,更新借书记录表中的学号。 - 示例2:创建一个DELETE触发器,当删除学生表中的记录时,同时删除借书记录表中的相关记录。 触发器中涉及...
下面是一个关于卷烟库存和销售的SQL触发器实例,这将帮助我们理解如何在商品交易中应用触发器,确保库存的准确性和及时性: ```sql CREATE TRIGGER trg_SaleUpdate ON Sales AFTER INSERT, UPDATE AS BEGIN IF ...