drop TABLE CLIENT_SETTING_INCREMENT;
CREATE TABLE CLIENT_SETTING_INCREMENT
(
"ACCOUNT_ID"
NUMBER(19,0),
"CONTENT_ID" NUMBER(*,0),
"CONTEXT_ID" NUMBER(*,0),
"PROPERTY_ID"
NUMBER(*,0),
"SETTING_TYPE"
NUMBER(*,0),
"SETTING_VALUE"
VARCHAR2(4000 BYTE),
CHANGE_FLAGS VARCHAR2(8 BYTE), --U for update, I for insert, D for
delete.
CONSTRAINT
"CLIENT_SET_INC_CONST_PKEY" PRIMARY KEY ("ACCOUNT_ID",
"CONTENT_ID", "CONTEXT_ID", "PROPERTY_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL
65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS
1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "INDEX_LARGE"
ENABLE,
CONSTRAINT
"CLIENT_SET_INC_AID_CONST_FKEY" FOREIGN KEY
("ACCOUNT_ID") REFERENCES "Z7ADMIN"."ACCOUNT"
("ID") ON
DELETE CASCADE
ENABLE
);
--create a row level trigger to track the changes on CLIENT_SETTING
drop trigger CLIENT_SETTING_INC_TRIGGER;
CREATE OR REPLACE TRIGGER CLIENT_SETTING_INC_TRIGGER
AFTER UPDATE OR DELETE OR
INSERT ON CLIENT_SETTING
FOR EACH ROW
DECLARE
change_flags VARCHAR2(8); -- U, D, I
num NUMBER(2,0);
BEGIN
num := 0;
CASE
WHEN UPDATING
THEN
select count(1) into num from
CLIENT_SETTING_INCREMENT where ACCOUNT_ID=:NEW.ACCOUNT_ID and
CONTENT_ID=:NEW.CONTENT_ID and CONTEXT_ID=:NEW.CONTEXT_ID and PROPERTY_ID =
:NEW.PROPERTY_ID;
IF num > 0 THEN
update CLIENT_SETTING_INCREMENT set
SETTING_TYPE=:NEW.SETTING_TYPE ,SETTING_VALUE=:NEW.SETTING_VALUE , CHANGE_FLAGS='U'
where ACCOUNT_ID=:NEW.ACCOUNT_ID and
CONTENT_ID=:NEW.CONTENT_ID and CONTEXT_ID=:NEW.CONTEXT_ID and PROPERTY_ID =
:NEW.PROPERTY_ID;
ELSE
Insert into
CLIENT_SETTING_INCREMENT
(ACCOUNT_ID,CONTENT_ID,CONTEXT_ID,PROPERTY_ID,SETTING_TYPE,SETTING_VALUE,CHANGE_FLAGS
)
values
(:NEW.ACCOUNT_ID, :NEW.CONTENT_ID, :NEW.CONTEXT_ID, :NEW.PROPERTY_ID,
:NEW.SETTING_TYPE, :NEW.SETTING_VALUE, 'U');
END IF;
WHEN DELETING
THEN
select count(1) into num from
CLIENT_SETTING_INCREMENT where ACCOUNT_ID=:OLD.ACCOUNT_ID and
CONTENT_ID=:OLD.CONTENT_ID and CONTEXT_ID=:OLD.CONTEXT_ID and PROPERTY_ID =
:OLD.PROPERTY_ID;
dbms_output.put_line(num);
IF num > 0 THEN
update CLIENT_SETTING_INCREMENT set
CHANGE_FLAGS='D' where
ACCOUNT_ID=:OLD.ACCOUNT_ID and CONTENT_ID=:OLD.CONTENT_ID and
CONTEXT_ID=:OLD.CONTEXT_ID and PROPERTY_ID = :OLD.PROPERTY_ID;
ELSE
Insert into
CLIENT_SETTING_INCREMENT (ACCOUNT_ID,CONTENT_ID,CONTEXT_ID,PROPERTY_ID,SETTING_TYPE,SETTING_VALUE,CHANGE_FLAGS
)
values
(:OLD.ACCOUNT_ID, :OLD.CONTENT_ID,
:OLD.CONTEXT_ID, :OLD.PROPERTY_ID, :OLD.SETTING_TYPE, :OLD.SETTING_VALUE,
'D');
END IF;
WHEN INSERTING
THEN
Insert into CLIENT_SETTING_INCREMENT
(ACCOUNT_ID,CONTENT_ID,CONTEXT_ID,PROPERTY_ID,SETTING_TYPE,SETTING_VALUE,CHANGE_FLAGS
)
values
(:NEW.ACCOUNT_ID, :NEW.CONTENT_ID, :NEW.CONTEXT_ID, :NEW.PROPERTY_ID,
:NEW.SETTING_TYPE, :NEW.SETTING_VALUE, 'I');
END CASE;
END;
|
相关推荐
BB FlashBack是一款功能强大的屏幕录像软件,主要用于创建高质量的视频教程、演示文稿或会议记录。这款软件以其易用性和专业性在IT行业内受到了广泛的认可。以下是对标题、描述及标签所涉及知识点的详细说明: ...
### NAND Flash Copy Back 特性详解 #### 描述与应用场景 **NAND Flash** 是一种非易失性存储器技术,被广泛应用于各种移动设备、固态硬盘等存储解决方案中。随着技术的发展,NAND Flash 不断进行优化,以提高性能...
"Oracle Flash back stop"可能是指在操作过程中遇到的问题或需要停止的Flashback操作。让我们深入了解一下Oracle Flashback的相关知识点。 首先,Oracle Flashback主要包括三种类型:Flashback Query(查询闪回)、...
BB Flash Back 4是一款高效且用户友好的录屏软件,专为那些希望轻松捕捉和记录屏幕上活动的人设计。这款工具以其出色的性能和易用性在众多同类软件中脱颖而出,尤其适合那些需要创建教程、演示或者游戏录像的用户。 ...
录屏软件BB Flash Back,有BB FlashBack Pro 4 汉化补丁,可以正常使用
BB FlashBack 4是一款强大的屏幕录制软件,专为创建高质量的视频教程、演示和会议记录而设计。在本文中,我们将深入探讨这款软件的核心功能、使用场景以及它如何提升用户的屏幕录制体验。 一、核心功能 ...
FlashTool 使用说明 FlashTool 是一种功能强大的刷机工具,专门为国产机 MTK 设备设计,提供了多种刷机模式和高级操作功能。本文将详细介绍 FlashTool 的使用说明和高级操作模式。 基本使用说明 1. 使用前请确定...
标题中的"ecan_back_to_back_28335_28335CAN_28335can_back_CAN_"暗示了这是一个关于28335微控制器(可能为TI公司的TMS320F28335)与CAN(Controller Area Network)接口之间进行回路连接的讨论。描述中进一步确认了...
n-back实验范式,包含0,1,2back,eprime 3.0 运行
MTK联发科SP_Flash_Tool_v5.2316_Win是一款针对联发科(MTK)处理器的安卓设备而设计的专业刷机工具。它主要用于帮助用户进行系统升级、故障修复、数据恢复等操作,尤其适用于那些无法通过常规方法进行软件更新的设备...
MTK(MediaTek)刷机工具,全称为SP_Flash_Tool,是专为基于MediaTek芯片的Android设备设计的一款强大的固件升级和恢复工具。在本文中,我们将深入探讨这款工具的功能、使用方法以及相关注意事项。 MTK,即联发科,...
This is modeling back to back converter
在图像处理领域,"filtered-back-projection"(滤波反投影)是一种常用的技术,用于将投影数据转换为图像,尤其在计算机断层扫描(CT)中广泛应用。此算法是图像重建过程中的核心部分,旨在从有限角度的一系列投影...
【标题】"Back_to_Back_HVDC_Conversion_System.rar_Back-To-Back HVDC_back_b" 涉及的核心概念是“背靠背高压直流输电(Back-to-Back HVDC)”系统,这是一种电力传输技术,主要用于连接两个独立运行的交流电网。...
NAND FLASH 的读写操作可以分为读操作、编程操作、擦除操作和 COPY-BACK 编程操作等。读操作是从 NAND FLASH 中读取数据的过程。编程操作是将数据写入 NAND FLASH 中的过程。擦除操作是将 NAND FLASH 中的数据清除的...
symantec back 2010 KEY
【标题】"back_seg_code.zip_back_back images_fusion" 是一个与图像融合相关的项目压缩包,其中包含了多种处理和分析图像的代码文件。这个项目主要关注的是如何将闪光灯(Flash)和非闪光灯(Non-Flash)拍摄的图像...
本文将深入探讨“后投影”(Back Projection)技术,以及其在BP-GAN(Back Projection GAN)中的应用,这些都是基于提供的标题"Source Codes_backprojection_back_BP-GAN后处理_"和描述"具体内容请见王楠楠的论文,...
[DA] Fix that NAND download/read-back issue on MT6225 because buffer is linked on TCM. New features: 1. [DA] Supports new NOR Flash device [SPANSION] S29WS128P [SPANSION] S29WS256P [TOSHIBA] TV...
命令行工具TimeBack.exe获取和更改文件的创建、修改、访问时间 TimeBack 1.0 文件时间控制 作者:Xinje E-mail:xinje@126.com 2010.6.16 /F [文件名] 设置欲更改或查看文件时间的文件名。 /T [日期时间] 欲更改的...