程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORACLE序列

ORACLE序列

編輯:Oracle教程

ORACLE序列


什麼是序列?
序列: 可供多個用戶用來產生唯一數值的數據庫對象
	 自動提供唯一的數值
	 共享對象
	 主要用於提供主鍵值
	 將序列值裝入內存可以提高訪問效率
	 
注意:
	將序列值裝入內存可提高訪問效率
序列在下列情況下出現裂縫:
	回滾
	系統異常
	多個表同時使用同一序列
	如果不將序列的值裝入內存(NOCACHE), 可使用表 USER_SEQUENCES 查看序列當前的有效值
	 
	 
	 
常用sql:
--創建sequence 
create sequence s_test00 
increment by 10 --每次增長10
start with 10--從10開始增長
maxvalue 100--提供的最大值
cycle--需要循環
nocache--不需要緩存登陸

NEXTVAL 和 CURRVAL 偽列:
	NEXTVAL 返回序列中下一個有效的值,任何用戶都可以引用.
	CURRVAL 中存放序列的當前值.
	NEXTVAL 應在 CURRVAL 之前指定 ,否則會報CURRVAL 尚未在此會話中定義的錯誤.

--使sequence往下疊加
select s_test00.nextval from dual;
--查詢當前的sequence值
select s_test00.currval from dual;
--設置表的某列按照sequence增長
create table t_emp10 as select employee_id ,first_name , salary from employees where 1=2; 
insert into t_emp10 values(s_test00.nextval , 'A',300);

--修改sequence
alter sequence s_test00
increment by 1
nocycle;
修改序列的注意事項:
	必須是序列的擁有者或對序列有 ALTER 權限
	只有將來的序列值會被改變
	改變序列的初始值只能通過刪除序列之後重建序列的方法實現

--刪除序列
drop sequence e_test00;	 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved