PL spl之觸發器

2021-09-26 15:09:21 字數 3682 閱讀 9247

當什麼事件發生時,執行某段**。

create or replace trigger text_trigger

after delete --在delete操作以後進行處理 after在操作之後進行操作 before 在進行操作之前操作 instead of 替代操作

on student

for each row

declare

--vsid sc.sid&type 建立乙個變數 vsid 變數型別為sc.sid的型別

begin

--new為新資料 使用前加 :

--old是舊資料 使用前加 :

insert into sc (cid,sid,score) values ('01',:new.sid,99);

insert into sc (cid,sid,score) values ('02',:new.sid,99);

insert into sc (cid,sid,score) values ('03',:new.sid,99);

end;

•對錶進行的insert、update及delete操作 (可以對插入,刪除,更新進行監聽)

•對檢視進行類似的操作(通過替換監聽 可以實現檢視的資料操作)

•資料庫的啟動與關閉等

•dml觸發器insert、update、delete

•ddl觸發器create、drop、alter

•系統級觸發器dbstart、dbshut、logon、grant等…(如:關機前對資料庫進行操作)

:new

當insert時,:new物件中儲存的為當前待插入的資料

當update時,代表著新資料

:old

操作完成前的資料值 當update時,代表著老資料

當delete時,代表著老資料

使用替代 intead of

create or replace view v_student as select student.* ,sc.cid ,sc.score from student ,sc where student.sid = sc.sid;

--建立檢視

select * from v_student;

--檢視檢視

create or replace trigger trgger_v_student_insert --建立觸發器

instead of insert --使用替換

on v_student

for each row

begin

insert into student values(:new.sid,:new.sname,:new.sage,:new.s***);

insert into sc values(:new.sid,:new.cid,:new.score);

end;

insert into v_student values('12', '安翌', '2010-01-01', '男', '01', 99);

--插入輸入

select * from v_student;

--檢視

create table student(sid varchar(10),sname nvarchar(10),sage varchar2(),s*** nvarchar(10));

*/–建立測試資料

insert into student values(『01』 , 『趙雷』 , 『1990-01-01』 , 『男』);

insert into student values(『02』 , 『錢電』 , 『1990-12-21』 , 『男』);

insert into student values(『03』 , 『孫風』 , 『1990-05-20』 , 『男』);

insert into student values(『04』 , 『李雲』 , 『1990-08-06』 , 『男』);

insert into student values(『05』 , 『周梅』 , 『1991-12-01』 , 『女』);

insert into student values(『06』 , 『吳蘭』 , 『1992-03-01』 , 『女』);

insert into student values(『07』 , 『鄭竹』 , 『1989-07-01』 , 『女』);

insert into student values(『08』 , 『王菊』 , 『1990-01-20』 , 『女』);

create table course(cid varchar(10),cname nvarchar(10),tid varchar(10));

insert into course values(『01』 , 『語文』 , 『02』);

insert into course values(『02』 , 『數學』 , 『01』);

insert into course values(『03』 , 『英語』 , 『03』);

create table teacher(tid varchar(10),tname nvarchar(10));

insert into teacher values(『01』 , 『張三』);

insert into teacher values(『02』 , 『李四』);

insert into teacher values(『03』 , 『王五』);

create table sc(sid varchar(10),cid varchar(10),score decimal(18,1));

insert into sc values(『01』 , 『01』 , 80);

insert into sc values(『01』 , 『02』 , 90);

insert into sc values(『01』 , 『03』 , 99);

insert into sc values(『02』 , 『01』 , 70);

insert into sc values(『02』 , 『02』 , 60);

insert into sc values(『02』 , 『03』 , 80);

insert into sc values(『03』 , 『01』 , 80);

insert into sc values(『03』 , 『02』 , 80);

insert into sc values(『03』 , 『03』 , 80);

insert into sc values(『04』 , 『01』 , 50);

insert into sc values(『04』 , 『02』 , 30);

insert into sc values(『04』 , 『03』 , 20);

insert into sc values(『05』 , 『01』 , 76);

insert into sc values(『05』 , 『02』 , 87);

insert into sc values(『06』 , 『01』 , 31);

insert into sc values(『06』 , 『03』 , 34);

insert into sc values(『07』 , 『02』 , 89);

insert into sc values(『07』 , 『03』 , 98);

WPF觸發器之資料觸發器(A)

wpf觸發器 屬性觸發器 當依賴屬性的值改變時呼叫。資料觸發器 當普通.net屬性的值改變時呼叫。事件觸發器 當路由事件被觸發時呼叫。1.資料觸發器示例 數字從0 9計數,當數字變為8時候,數字變化成紅色並加粗進行顯示。0 1 2 3 4 5 6 7 8 9 0 2.新建wpf專案,專案名稱 dat...

mysql之觸發器詳解 MySQL之觸發器詳解

觸發器 trigger 監事某種情況,並出發某種操作。觸發器建立語法四要素 1 監視地點 table 2 監視事件 insert update delete 3 觸發時間 after before 4 觸發事件 insert update delete create trigger triggern...

WPF觸發器之資料觸發器(B)

如果你還不知道資料觸發器怎麼使用,或者連資料觸發器是什麼都還不了解,請先閱讀wpf觸發器之資料觸發器 a 1.當你知道了資料觸發器是當某個.net屬性值變化時觸發的操作,比如說當數字變成了 8 那就讓數字變成紅色。那麼使用資料觸發器實現此功能就可以這樣寫 datatrigger binding pa...