日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle入门(十二G)之序列

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle入门(十二G)之序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
序列(SEQUENCE)序列是一數據庫對象,利用它可生成唯一的整數。

由于它屬于可共享對象,所以允許多個用戶訪問。一般情況下,序列用于創建主鍵值。

序列號的存儲和生成與表無關。因此,同一序列可以用于多個表。

一、創建序列

create sequence 序列名?

[increment by n]? ? ? --指定序列號的間隔值,其中n 為整數

[start with n]? ? ? ? ? ? --指定要生成的第一個序列號(如果省略該語句,序列將從1 開始)

[{maxvalue n | nomaxvalue}]? ?--指定當序列達到其最大值或最小值后,是否繼續生成值?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NOMAXVALUE是默認選項,代表沒有最大值定義,這時對于遞增
????????????????????????????????????????????????????序列,系統能夠產生的最大值是10的27次方;對于遞減序列,最大值是-1。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MINVALUE定義序列生成器能產生的最小值。選項NOMAXVALUE是
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 默認選項,代表沒有最小值定義,這時對于遞減序列,系統能夠產生
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 的最小值是?10的26次方;對于遞增序列,最小值是1。

[{minvalue n | nominvalue}]? ?

[{cycle | nocycle}]? ? ??---表示當序列生成器的值達到限制值后是否循環。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CYCLE代表循環,NOCYCLE代表不循環。如果循環,則當遞增序列達到最大值時,循環到最
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?小值;對于遞減序列達到最小值時,循環到最大值。如果不循環,達到限制值后,繼續產生新值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?就會發生錯誤。

[{cache n | nocache}];? ???--指定Oracle 服務器預先分配并保留在內存中的值的個數。(默認20)如果系統崩潰,這些值將丟失。


實例:

create sequence user_seq
increment by 1
start with 1
maxvalue 50000
nocache
nocycle;


二、查詢序列

(1)要驗證序列已創建,請查詢user_sequences數據字典。要查看序列的所有設置,請按如下所示方式查詢USER_SEQUENCES 數據字典。

select sequence_name, min_value, max_value, increment_by, last_number? from user_sequences;

(2)查看當前用戶的所有序列?
select?sequence_owner,sequence_name?from dba_sequences? where sequence_owner='PPNIE';

注意:sequence_owner的值必須為大寫,不管你的用戶名是否大寫。只有大寫才能識別。

(3)查詢當前用戶的序列總數?
select count(*) from dba_sequences where sequence_owner='用戶名';

(4)生成刪除該用戶下的序列號的sql語句
select 'drop sequence ' ||sequence_name ||' ;' from dba_sequences where sequence_owner='PPNIE';?

三、nextval和currval使用

nextval 偽列用于從指定序列中提取連續的序列號。必須用序列名來限定nextval。

在引用“序列名.nextval”時,會生成新的序列號,并將當前的序列號放置在currval 中。

?insert into t_user(uiid,uname) values(user_seq.nextval,'系統管理員');


可以在下列上下文中使用nextval 和currval:

  • 不屬于子查詢的select 語句的select 列表
  • insert 語句中子查詢的select 列表
  • insert 語句的values 子句
  • update 語句的set 子句


四、修改序列

?alter sequence 序列名?
  [increment by n]?
  [{maxvalue n | nomaxvalue}]?
? ? ? ?[{minvalue n | nominvalue}]??
  [{cycle|nocycle}]?
  [{cache n|nocache}];

注意:不能修改序列的初始值

alter sequence seq_empid increment by 2;注: Oracle修改序列(Sequence)起始值的方法


五、刪除序列

drop sequence 序列名;
drop sequence seq_empid


總結

以上是生活随笔為你收集整理的Oracle入门(十二G)之序列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。