一 需求
漲工資不能越漲越少。
二 **
--觸發器應用場景
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...