行級觸發器練習例題

2021-10-06 10:49:05 字數 1220 閱讀 4531

--1.在使用者scott的dept表上建立乙個行級觸發器,

--當dept表的部門號發生修改時,emp表中該部門員工的部門號隨之發生變化,

--當某部門被刪除時,emp表中該部門員工的部門號也隨之刪除。

create or replace trigger c4

after update or delete 

on dept --在執行修改部門號和刪除操作後觸發。

for each row--觸發器型別為行級觸發器。

begin

if updating then

update emp set deptno=:new.deptno where deptno=:old.deptno;-- emp表中該部門員工的部門號隨之發生變化。

end if;

if deleting then

delete from emp where deptno=:old.deptno;-- emp表中該部門員工的部門號也隨之刪除。

end if;

end;

--2.在使用者scott的emp表上建立乙個行級觸發器,當發生修改時,

--將被修改員工修改後的雇員編號,姓名和工資存入empbk表;當被刪除時,將被刪除員工的雇員編號,姓名和工資存入empbk表。 

create table empbk

(empno number(4),ename varchar2(10),sal number(7,2));

create or replace trigger c2

after update or delete on emp--在emp表上執行修改和刪除操作之後觸發。

for each row --觸發器型別為行級觸發器。

begin

if updating then  --修改操作時。

insert into empbk(empno,ename,sal) values (:new.empno, :new.ename, :new.sal);

--4.將被修改員工修改後的雇員編號,姓名和工資存入empbk表。

end if;

if deleting then  --刪除操作時。

insert into empbk(empno,ename,sal) values (:old.empno, :old.ename, :old.sal);  --將被刪除員工的雇員編號,姓名和工資存入empbk表。

end if;

end;

行級觸發器

行級觸發器 1觸發器使用for each row選項 2行級觸發器進行dml操作時,每作用一行就觸發一次。行級觸發器分類 1before行級觸發器 為了確保資料符合商業邏輯和企業規劃,應該使用約束對輸入資料加以限制。在某些情況下約束無法實現複雜的商業邏輯和企業規範,這時候可以使用before行級觸發...

ORACLE觸發器 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...

Oracle觸發器介紹 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸 髮器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例一 個簡...