Oracle觸發器條件更改新插入記錄的欄位值
阿新 • • 發佈:2018-12-13
最近,有個專案功能需要在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]');
最後查詢結果如下,電話號碼自動做更新