使用觸發器訂單序列號生成

2022-05-05 05:03:10 字數 861 閱讀 4270

1:業務表

create table a_test_trigger

(id varchar2(255 char) not null,

sn varchar2(255 char)

)2:儲存當前序列號的表:

create table sequence_generator

(key         varchar2(20) not null,

current_seq number(20)

)3:建立觸發器

create or replace trigger test_sn_generator

before insert on learn.a_test_trigger

for each row

declare

sn_no varchar2(1000);

begin

select current_seq||'aaaaa' into :new.sn from sequence_generator for update;

update sequence_generator set current_seq = current_seq +1 where key = '51080201ia';

end;

4:這樣當業務表中插入資料

insert into a_test_trigger(id, sn) values(1, 'a');

時根據sequence_generator表生成序列號

5:注意在查詢sequence_generator 時使用了 悲觀鎖

6:這樣就可以根據一定的業務規則生成序列號了。

因為觸發器與當前session在同乙個事務中,所以與其他的session隔離了。

Oracle 序列 觸發器的使用

oracle 序列 create sequence emp sequence 序列名 increment by 1 每次加幾個 start with 1 從1開始計數 nomaxvalue 不設定最大值 nocycle 一直累加,不迴圈 cache 10 制定存入快取 也就是記憶體 序列值的個數 備...

Orcale序列 觸發器

序列 重點 i.語法 create sequence序列名 引數 ii.詳解 用來生成一列自動增長的值。create sequence seq class minvalue 值 最小值 maxvalue 值 最大值 start with 起始值 increment by 值 遞增數 cache 快取...

Oracle 序列,觸發器

序列是什麼 序列就是按照一定的規則,不斷增長 不斷減少 的乙個數字 用於我們資料庫表裡 作為資料的乙個唯一標識。序列的語法 建立序列 create sequence seq objid 建立乙個名稱為seq objid 的序列 increment by 1 每次增長1 1,2,3,4,5,6,7,s...