oracle給表建立遞增觸發器

2021-10-05 04:33:26 字數 880 閱讀 5302

create

table product (

id number(11)

notnull

, name varchar

(255

)not

null

, price float

notnull

,primary

key( id )

);

--建立遞增觸發器

--drop trigger trig_product_in;

create

orreplace

trigger trig_product_in

before insert

on product

for each row

declare

nextid number(11)

;begin

if:new.id is

null

then

select

max(id)

into nextid from product;

if nextid is

null

then

:new.id :=1;

else

:new.id := nextid+1;

endif

;endif;

end;

/

整體思路是:先判斷插入的資料中id列new.id是否為空,如果不等於空就退出。如果等於空則查詢表中id列的最大值賦值給變數nextid。如果nextid為空則表中無資料,把new.id=1,退出。如果nextid不為空則把new.id := nextid+1,退出。

Oracle建立觸發器

首先要講一下觸發器的概念 觸發器是由於dml語句的執行引發的一種特殊的資料庫物件。所以呢他的型別就要insert,instead of update,delete 三種觸發器。基本用法如下面所示 建立刪除觸發器 create or replace trigger tri delete after d...

oracle建立觸發器

工作需要,需要建立乙個觸發器,判斷表中的id是否為空,如果為空的時候需要用觸發器加上id,如果沒有觸發觸發器加上id,如果有則不觸發觸發器。建立乙個序列,每次加乙個 create sequence 序列名稱 increment by 1 每次加乙個 建立乙個觸發器 create or replace...

建立oracle觸發器

create trigger 觸發器名稱 before after 執行前觸發還是執行後觸發 insert update delete on 表名 for each row begin 觸發的sql語句 如果只有一條sql語句,可省略begin,end end 觸發器中可能會用到兩種值,一種是修改之...