oracle中的ID號如何實現自增長

2021-06-21 09:05:20 字數 871 閱讀 1538

利用序列產生主鍵值。

序列(sequence)是一種可以被多個使用者使用的用於產生一系列唯一數字的資料庫物件。序列定義儲存在資料字典中,通過提供唯一數值的順序表來簡化程式設計工作,可以使用序列自動產生主鍵的鍵值。當乙個序列第一次被查詢呼叫時,它將返回乙個預定值。在隨後的每次查詢中,序列將產生乙個按指定的增量增長的值。序列可以迴圈,或者是連續增加的,直到指定的最大值為止。 

--建立sequence

create sequence seq_on_test

increment by 1

start with 1

nomaxvalue

nocycle

nocache;

--建表

drop table test;

create table test(

id integer

,stu_name nvarchar2(4)

,stu_age number);

--插入資料

insert into test values(seq_on_test.nextval,'mary',15);

insert into test values(seq_on_test.nextval,'tom',16);

select * from test;

--結果

/*1 mary 15

2 tom 16*/

--seq的兩個方法

select seq_on_test.currval from dual;

select seq_on_test.nextval from dual;

--結果/*2

3*/

oracle中的ID號實現自增長的方法

利用序列產生主鍵值。序列 sequence 是一種可以被多個使用者使用的用於產生一系列唯一數字的資料庫物件。序列定義儲存在資料字典中,通過提供唯一數值的順序表來簡化程式設計工作,可以使用序列自動產生主鍵的鍵值。當乙個序列第一次被查詢呼叫時,它將返回乙個預定值。在隨後的每次查詢中,序列將產生乙個按指定...

Oracle 中如何實現客戶號自增

update amldata.tmp out client t set t.client id amldata.seq client id.nextval amldata.seq client id.nextval create sequence create sequence amldata.se...

Spark中ID發號器實現思路

spark作為乙個分布式處理框架,處理資料非常快。可是我也不知道作者基於什麼樣的設計哲學,限制了使用者對於一些資料的操作。例如你無法改變乙個rdd的內容。無法乙個split把資料集分割成兩份。無法獲得rdd的分割槽資訊,無法再map的時候知道自己處於哪個分割槽。這對於id分配來說實在是太難辦了。甚至...