Oracle資料庫觸發器資料的確認

2021-08-11 03:55:16 字數 1194 閱讀 9495

一 需求

漲工資不能越漲越少。

二 **

--觸發器應用場景

2:資料的

--漲後的薪水不能少於漲前的薪水

/*

:old和:new代表的是同一條記錄

:new 表示操作該行之前,這一行的值

:old 表示操作該行之後,這一行的值

*/

create

orreplace trigger checksalary

before update

on emp

for

each row

begin

if

:old

.sal

>

:new

.sal

then

(-20002

,'漲後的薪水不能少於漲前的薪水 漲前'

||:old

.sal

||'漲後'

||:new

.sal

);end

if;

end

;

/

三 驗證

sql> update emp set sal=sal+1 where empno=7839;

已更新 1 行。

sql> update emp set sal=sal-1 where empno=7839;

update emp set sal=sal-1 where empno=7839 *

第 1 行出現錯誤:

ora-20002: 漲後的薪水不能少於漲前的薪水 漲前10101漲後10100

ora-06512: 在 "scott.checksalary", line 3

ora-04088: 觸發器 'scott.checksalary' 執行過程中出錯

oracle資料庫觸發器

instead of觸發器介紹 instead of觸發器代替觸發動作,並在處理約束之前激發 對於每個觸發操作,每個表或檢視都只能有乙個instead of觸發器。而乙個表對於每個觸發操作可以有多個after觸發器 instead of觸發器的建立模板 create or replace trigg...

Oracle資料庫update觸發器

在專案中使用到oracle資料庫的update觸發器,先記錄下來方便以後查閱。預備知識和格式以後再編輯吧,先把內容貼出來。create or replace trigger demo trigger after update on tb goods referencing new as new ol...

Oracle資料庫觸發器例項

需求 在修改表qdyth.jzfpjcxx時,要實時記錄表中的資料變動情況 協商後結果 建立新錶記錄資料變動情況 實現手段 資料庫觸發器 建立或修改觸發器 tr jzfpjcxx 2 create or replace trigger tr jzfpjcxx 2 觸發條件 before delete...