Phoenix中Sequence的用法

2021-07-30 22:51:15 字數 1562 閱讀 1202

phoenix--hbase的jdbc驅動

序列(sequence)是phoenix提供的允許產生單調遞增數字的乙個sql特性,序列會自動生成順序遞增的序列號,以實現自動提供唯一的主鍵值。

使用create sequence語句建立序列的語法如下:

create sequence

[start with n]

[increment by n]

[minvalue n]

[maxvalue n]

[cycle]

[cache n]

語法結構:

引數說明:

sqe_name:序列名

increment:可選子句,表示序列的增量,正數表示生成乙個遞增的序列,負數表示生成乙個遞減的序列,其預設值是1.

minvalue:可選子句,決定序列生成的最小值

maxvalue:可選子句,決定序列生成的最大值

start:可選子句,指定序列的開始位置,預設遞增序列的起始值為minvalue,遞減序列的起始值為maxvalue.

cache:可選子句,決定是否產生序列號預分配並儲存在記憶體中。

cycle:可選關鍵字,當序列達到最大值或者最小值時,可以繼續復位下去;如果是遞增系列達到maxvalue,它將又從minvalue繼續遞增,如果是遞減系列達到minvalue,它將從maxvalue繼續遞減。如果忽略該關鍵,當其他達到最大值或者最小時仍繼續遞增/減時將會返回乙個錯誤。

例子:建立預設序列,其增量為1

create sequence my_sequence;
建立乙個最小值為1,最大值為10並且能復位的序列

create sequence my_cycling_sequence minvalue1maxvalue100cycle;
查詢當前序列號

select

current

for my_sequence;

查詢當前序列的下乙個序列號

select

next value for my_sequence;

(next value for返回當前序列的下乙個序列號,curent value for返回當前序列號,注意:首次引用序列時,必須是next value for)

使用upsert select語句,並為主鍵生成乙個唯一的序列值

upsert values

into my_table(id, col1, col2) values( next value for my_schema.my_sequence, '

foo', '

bar');

通過current value for查詢某錶中某序列為該錶分配的最後乙個序列號

select

current value for my_sequence from my_tale;

Oracle中自動獲取序列sequence用法

oracle中沒有自增型別的字段的,所以通常情況下需要定義乙個sequence來作為自動增長型別欄位的資料。於是記錄了一些關於oracle sequence的資料,已備查用 oracle中的序列 sequence 1 如何定義乙個序列 僅向前的數字變數 和sql中的自動編號有點像 identity ...

Oracle中如何建立使用SEQUENCES

oracle中sequences的使用 oracle提供了sequence物件,由系統提供自增長的序列號,通常用於生成資料庫資料記錄的自增長主鍵或序號的地方.下面介紹一下關於sequence 的生成,修改,刪除等常用的操作 1.建立 sequence 使用如下命令新建sequence 使用者需要有c...

Oracle中sequenc和觸發器

oracle中的sequence即序列號,在取的時候會隨著規定增長。比如1個由1開始,每次增長1的序列號。create trigger seq user1 start with 1 increment by 1 序列號,通常被我們用於作為自動增長的id號進行使用。對於乙個user1 id,usern...