ORACLE的簡單觸發器實現

2021-06-28 14:45:30 字數 1344 閱讀 7314

對於觸發器,我個人感覺能很好的解決兩個關聯表的資料關係,當乙個表改變的時候,所設定的觸發就會根據觸發器裡面的條件來改變要改變表的資料,

主要還是ddl(insert,delete,update)在其前面還要加上是(after ,  before),來判斷是在之前還是之後。

乙個簡單的觸發器是這樣的,比方有乙個emp表,表的結構為:

create table emp

(id     number(4,0),

name   varchar2(50 byte) not null enable,

age    number(11,0),

salary number(7,2),

marry  char(1 byte),

birthday date,

last_login_time date }

在來乙個相同 的表:

create

table emp_my as

select

*from emp where1=2;

下面就建乙個觸發器,是當刪除emp表中的資料時把這個刪除的資料放到emp_my表裡面,

create   or  replace  trigger   trigger_name

before  delete  -- 這個意思是在刪除之前來執行這個觸發 器。

on  emp   ---  on  是必須要的  emp是你想操作的表,

begin  

insert  into  emp_my  (column ,....) values  (:old.column,....);

end;

觸發器的一般語法:

create

[or replace]

trigger trigger_name

-- 這個選其一

這個是ddl動作,後面的是你所要執行的表中的字段,

[or ...] 這個是你可以在三種動作中使用這個觸發器,  中間用 or來 連線

on[schema.]table_name |

[schema.]view_name    ----   這個是在做動作的表名

[referencing ]

[for each row ]    ----  這個是代表是行觸發器

[when condition]     這個是你執行表,在什麼條件下來觸發這個觸發器 條件

pl/sql_block | call procedure_name;   ---  你所想要執行這個觸發器之後得到的結果。用sql來表達出來 

這個就是最簡單的乙個觸發器。

還要了解更深的:請點這個:

oracle序列觸發器簡單實現示例

建立oracle主鍵自增長 1.建表 create table test id number 10 primary key,name varchar2 20 2.建立序列 create sequence test sequence minvalue 1 自增最小值 maxvalue 9999999 ...

oracle 觸發器簡單例項

語法格式 create or replace trigger 觸發器名字 before after insert delete update 這個不能寫select on 表 在那張表建立觸發器 for each row 行觸發器 declare 申明 變數申明塊 begin 執行語句塊 end 條...

Oracle觸發器簡單示例

首先建立兩張測試表 create table test t id number 4 t name varchar2 20 t age number 2 t char create table test log caozuo varchar2 20 tdate date 然後建立觸發器並且進行測試 c...