請在后臺配置參數,參數名稱:topads
數據庫 mysql oracle

Oracle 觸發器增刪除改查數據同步及表之間同步

oracle HTML我幫您 1年前  5125次瀏覽
觸發器是許多關系數據庫系統都提供的一項技術。在ORACLE系統里,觸發器類似過程和函數,都有聲明,執行和異常處理過程的PL/SQL塊。
ORACLE可以在DML語句進行觸發,可以在DML操作前或操作后進行觸發,并且可以對每個行或語句操作上進行觸發。
觸發器組成:
觸發事件:引起觸發器被觸發的事件。 例如:DML語句(INSERT, UPDATE, DELETE語句對表或視圖執行數據處理操作)、DDL語句(如CREATE、ALTER、DROP語句在數據庫中創建、修改、刪除模式對象)、數據庫系統事件(如系統啟動或退出、異常錯誤)、用戶事件(如登錄或退出數據庫)。
觸發時間:即該TRIGGER 是在觸發事件發生之前(BEFORE)還是之后(AFTER)觸發,也就是觸發事件和該TRIGGER 的操作順序。
觸發操作:即該TRIGGER 被觸發之后的目的和意圖,正是觸發器本身要做的事情。 例如:PL/SQL 塊。
觸發對象:包括表、視圖、模式、數據庫。只有在這些對象上發生了符合觸發條件的觸發事件,才會執行觸發操作。
觸發條件:由WHEN子句指定一個邏輯表達式。只有當該表達式的值為TRUE時,遇到觸發事件才會自動執行觸發器,使其執行觸發操作。
觸發頻率:說明觸發器內定義的動作被執行的次數。即語句級(STATEMENT)觸發器和行級(ROW)觸發器。
語句級(STATEMENT)觸發器:是指當某觸發事件發生時,該觸發器只執行一次;
行級(ROW)觸發器:是指當某觸發事件發生時,對受到該操作影響的每一行數據,觸發器都單獨執行一次。

建表:
create table User_Info (
ID INTEGER not null,
UserName VARCHAR(30) not null,
PassWord VARCHAR(20) not null,
CreateDate Date not null,
Status INTEGER not null,
constraint PK_User_Info primary key (ID)
);

create table User_Info_temp (
ID INTEGER not null,
UserName VARCHAR(30) not null,
PassWord VARCHAR(20) not null,
CreateDate Date not null,
Status INTEGER not null,
constraint PK_User_Info_temp primary key (ID)
);
觸發器寫法:
create or replace trigger UserToTemp after insert or update or delete
on user_info for each row
declare
integrity_error exception;
errno integer;
errmsg char(200);
dummy integer;
found boolean;

begin
if inserting then
insert into User_info_temp(ID,UserName,PassWord,CreateDate,Status) values(:NEW.ID,:NEW.UserName,:NEW.PassWord,:new.CreateDate,:NEW.Status);
elsif updating then
update User_info_temp set ID=:NEW.ID,UserName=:NEW.UserName,PassWord=:NEW.PassWord,Status=:NEW.Status where id=:OLD.id;
elsif deleting then
delete from User_info_temp where id=:OLD.id;
end if;
exception
when integrity_error then
raise_application_error(errno, errmsg);
end;

測試數據:
insert into user_info(ID,UserName,PassWord,CreateDate,Status)values(1,'html580','html580',sysdate,1);
update user_info u set u.status=3,u.username='html580' where u.id=1;
delete from user_info u where u.id=1;




發表評論

2017怎样手机上赚钱 广西体彩11选5玩法介绍 关于基金配资的规定 十一选五最简单技巧 大吉大利猜生肖 在线开股票账户 11选5安徽 3d时时乐平台出租 福建快三综合走势 佳永配资 好彩1晚上几点开奖