1. 程式人生 > >Oracle觸發器條件更改新插入記錄的欄位值

Oracle觸發器條件更改新插入記錄的欄位值

最近,有個專案功能需要在Oracle資料庫中對錶的記錄做動態更新,實現一插入指定條件的記錄,就修改相關欄位值。嘗試了下,最終做到每當插入時就能夠更新記錄某欄位值。

這裡用PL/SQL做了相關實現。

相關表名稱為Person ,其屬性欄位如下:

具體需求為:當插入記錄年齡(欄位Age)小於20時,修改記錄電話號碼,將電話號碼新增區號標誌。根據這需求,在PL/SQl建立觸發器

首先,選擇表Person,查詢到Trigger,點選右鍵“New”,開啟觸發器對話方塊

在“觸發器”對話方塊中,自定義名稱,選擇Fires(觸發點) 為 after,Event(觸發事件) 選擇insert,最後點選 “OK”按鈕,進行具體觸發器事件編寫

最終觸發器方法,書寫如下,完成後,點選 PL/SQL 執行按鈕,確保其生效。

create or replace trigger test
  before insert
  on PERSON 
  for each row
    
declare
  -- local variables here
begin
   if :new.age<20 then 
      :new.telephone:='(21)' || :new.telephone;
      end if;
end test;

編輯完成後,進行測試,在 PL/SQL 的 SQL Window 執行如下插入語句

insert into PERSON (ID, FIRSTNAME, SECONDNAME, AGE, ADDRESS, TELEPHONE, EMAIL)
values (3, '張三', '三前', 13, '黃埔中路', '6231324', '[email protected]');

最後查詢結果如下,電話號碼自動做更新