oracle觸發器update本表資料

2022-05-19 06:14:42 字數 2039 閱讀 5694

create or replace

view company_phone_book as

select first_name||', '||last_name name, email,

phone_number,

employee_id emp_id

from hr.employees;

嘗試更新email和name

update hr.company_phone_book

set name='chen1, donny1'

where

emp_id=100

create or replace trigger update_name_company_phone_book

instead of

update on hr.company_phone_book

begin

update

hr.employees

set employee_id=:new.emp_id,

first_name=substr(:new.name,

instr(:new.name,',')+2),

last_name=

substr(:new.name,1,instr(:new.name,',')-1),

phone_number=:new.phone_number,

email=:new.email

where employee_id=:old.emp_id;

end;

4、

系統事件觸發器

系統事件:資料庫啟動、關閉,伺服器錯誤

create trigger ad_startup

after

startup

on database

begin

-- do some stuff

end;

/5、 使用者事件觸發器

使用者事件:使用者登陸、登出,create / alter / drop / analyze

/ audit / grant / revoke /

rename / truncate / logoff

例子:記錄刪除物件

1. 日誌表

create table droped_objects(

object_name varchar2(30),

object_type varchar2(30),

dropped_on date);

2.觸發器

create or

replace trigger log_drop_trigger

before drop on donny.schema

begin

insert into droped_objects values(

ora_dict_obj_name, -- 與觸發器相關的函式

ora_dict_obj_type,

sysdate);

end;

/3. 測試

create table drop_me(a number);

create view drop_me_view as select *from

drop_me;

drop view drop_me_view;

drop table drop_me;

select *from

droped_objects

禁用和啟用觸發器

alter trigger disable;

alter trigger enable;

事務處理:

在觸發器中,不能使用commit /

rollback

因為ddl語句具有隱式的commit,所以也不允許使用

檢視:

dba_triggers

本文**

Oracle資料庫update觸發器

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

ORACLE觸發器 行級觸發器

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

Oracle觸發器介紹 行級觸發器

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