Oracle(創建序列)


概念:

所謂序列,在oracle中就是一個對象,這個對象用來提供一個有序的數據列,這個有序的數據列的值都不重復。

 

1.序列可以自動生成唯一值

2.是一個可以被共享的對象

3.典型的用來生成主鍵值的一個對象

4.可以替代應用程序代碼

5.sequence的值存放在緩存中時可以提高訪問效率。

 

創建序列語法:

CREATE SEQUENCE name

[INCREMENT BY n]

[START WITH n]              

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

 

note:

1.increment by n:表明值每次增長n(步長)

2.start with n: n開始

3.{MAXVALUE n | NOMAXVALUE}: 設置最大值

4.{MINVALUE n | NOMINVALUE}: 設置最小值,start with不能小於最小值。

5.CYCLE | NOCYCLE          : 是否循環,建議不使用

6.CACHE n | NOCACHE     是否啟用緩存。

 

例如:

create sequence emp_id_seq

start with 1

increment by 1

nomaxvalue

nominvalue

nocycle

nocache;

note:可以通過數據字典user_sequences查看當前用戶所擁有的序列信息。

例如:

select sequence_name,min_value,max_value,last_number

from user_sequences

where sequence_name = 'EMP_ID_SEQ';

 

序列的屬性(偽列)

1.nextval : 返回下一個可用的序列值。

就算是被不同的用戶調用,每次也返回一個唯一的值。

2.currval :獲取序列當前的值。

currval調用之前,必須保證nextval已經獲取過一次值。

使用sequence

例如:

1.向表中插入數據

insert into emp values(emp_id_seq.nextval);

2.查看序列的當前值

select emp_id_seq.currval from dual;

3.獲取序列的下一個值。

select emp_id_seq.nextval from dual;

緩存:

使用緩存可以提高sequence的訪問效率

 

修改sequence

 

ALTER SEQUENCE name

[INCREMENT BY n]      

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

 

note

1.必須是序列的擁有者,或者具有alter權限

2.修改后的序列,只對之后的值起作用。

3.不能修改start with,如果想改,只能刪除,重新創建,啟動。

 

刪除sequence

drop sequence seq_name;

例如:

drop sequence emp_id_seq;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM