問題:在SQL Server數(shù)據(jù)庫中,有自增列這個(gè)字段屬性,使用起來也是很方便的。而在Oracle中卻沒有這個(gè)功能,該如何實(shí)現(xiàn)呢?
答:在Oracle中雖然沒有自增列的說法,但卻可以通過觸發(fā)器(trigger)和序列(sequence)來模式實(shí)現(xiàn)。
示例:
1、建立表
復(fù)制代碼 代碼如下:
create table user
(
id number(6) not null,
name varchar2(30) not null primary key
)
2、建立序列SEQUENCE
復(fù)制代碼 代碼如下:
create sequence user_seq increment by 1 start with 1 minvalue 1 maxvalue 9999999999999 nocache order;
語法:
CREATE SEQUENCE s_id NOMAXVALUE NOCYCLE
--INCREMENT BY 1 -- 每次加幾個(gè)
--START WITH 1 -- 從1開始計(jì)數(shù)
--NOMAXVALUE -- 不設(shè)置最大值
--NOCYCLE -- 一直累加,不循環(huán)
--CACHE 10; -- 緩存序列個(gè)數(shù),有助于提高效率,但可能造成跳號(hào)
3、創(chuàng)建觸發(fā)器
創(chuàng)建一個(gè)基于該表的before insert 觸發(fā)器,在觸發(fā)器中使用剛創(chuàng)建的SEQUENCE。
復(fù)制代碼 代碼如下:
create or replace trigger user_trigger
before insert on user
for each row
begin
select user_seq.nextval into:new.id from sys.dual ;
end;
下面就可以插入數(shù)據(jù)測試了。經(jīng)過本人證明,上述方法是可行的。
您可能感興趣的文章:- 分享ORACLE SEQUENCE跳號(hào)總結(jié)
- 詳解ORACLE SEQUENCE用法
- sqlserver實(shí)現(xiàn)oracle的sequence方法
- Oracle創(chuàng)建自增字段--ORACLE SEQUENCE的簡單使用介紹
- oracle sequence語句重置方介紹
- Hibernate Oracle sequence的使用技巧
- 通過實(shí)例了解Oracle序列Sequence使用方法