成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數據庫中序列(SEQUENCE)的用法詳解

數據庫 Oracle
在Oracle數據庫中,序列的用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下一個值。本文我們主要介紹了序列的用法,希望能夠對您有所幫助。

Oracle數據庫中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其實是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(類型為數字)。其主要的用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下一個值。

創建序列需要CREATE SEQUENCE系統權限。序列的創建語法如下:

CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [] [{CACHE n|NOCACHE}];

INCREMENT BY 用于定義序列的步長,如果省略,則默認為1,如果出現負值,則代表序列的值是按照此步長遞減的。

START WITH 定義序列的初始值(即產生的***個值),默認為1。

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

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

CYCLE和NOCYCLE 表示當序列生成器的值達到限制值后是否循環。CYCLE代表循環,NOCYCLE代表不循環。如果循環,則當遞增序列達到***值時,循環到最小值;對于遞減序列達到最小值時,循環到***值。如果不循環,達到限制值后,繼續產生新值就會發生錯誤。

CACHE(緩沖)定義存放序列的內存塊的大小,默認為20。NOCACHE表示不對序列進行內存緩沖。對序列進行內存緩沖,可以改善序列的性能。

刪除序列的語法是:

DROP SEQUENCE 序列名;

其中:

刪除序列的人應該是序列的創建者或擁有DROP ANY SEQUENCE系統權限的用戶。序列一旦刪除就不能被引用了。

序列的某些部分也可以在使用中進行修改,但不能修改SATRT WITH選項。對序列的修改只影響隨后產生的序號,已經產生的序號不變。

修改序列的語法如下:

創建和刪除序列

例1:創建序列:

CREATE SEQUENCE ABC INCREMENT BY 1 START WITH 10 MAXVALUE 9999999 NOCYCLE NOCACHE;

執行結果:

序列已創建。

步驟2:刪除序列:

DROP SEQUENCE ABC;

執行結果:

序列已丟棄。

說明:以上創建的序列名為ABC,是遞增序列,增量為1,初始值為10。該序列不循環,不使用內存。沒有定義最小值,默認最小值為1,***值為9 999 999。

序列的使用

如果已經創建了序列,怎樣才能引用序列呢?方法是使用CURRVAL和NEXTVAL來引用序列的值。

在編號的過程中,產生間隙的原因多種多樣。如果一個存儲過程從一個序列中挑選某個數字,定為本地變量,但是從來不用它,這個數字就丟失了。它將不能再返回到原序列中,結果就造成數值序列中存在一個間隙。關系型數據庫模型中不必擔心這一點。但是有時候人們在意這一點,這些人想知道是哪些數字丟失了。

調用NEXTVAL將生成序列中的下一個序列號,調用時要指出序列名,即用以下方式調用:

序列名.NEXTVAL

CURRVAL用于產生序列的當前值,無論調用多少次都不會產生序列的下一個值。如果序列還沒有通過調用NEXTVAL產生過序列的下一個值,先引用CURRVAL沒有意義。調用CURRVAL的方法同上,要指出序列名,即用以下方式調用:

序列名.CURRVAL.

產生序列的值。

步驟1:產生序列的***個值:

SELECT ABC.NEXTVAL FROM DUAL;

執行結果:

NEXTVAL ------------------ 10

步驟2:產生序列的下一個值:

SELECT ABC.NEXTVAL FROM DUAL;

執行結果:

NEXTVAL ------------------- 11

產生序列的當前值:

SELECT ABC.CURRVAL FROM DUAL;

執行結果:

CURRVAL -------------------- 11

說明:***次調用NEXTVAL產生序列的初始值,根據定義知道初始值為10。第二次調用產生11,因為序列的步長為1。調用CURRVAL,顯示當前值11,不產生新值。Oracle的解析函數為檢查間隙提供了一種要快捷得多的方法。它們使你在使用完整的、面向集合的SQL處理的同時,仍然能夠看到下一個行(LEAD)或者前一行(LAG)的數值。

關于Oracle數據庫序列的知識就介紹到這里了,希望本次的介紹能夠帶給您一些收獲,謝謝!

【編輯推薦】

  1. Oracle數據庫如何創建對象類型和對象類型表
  2. 虛擬機安裝Oracle錯誤ORA-12514的解決方案
  3. Oracle數據庫如何創建DB Link操作遠程數據庫
  4. Oracle提示“資源正忙,需指定nowait”的解決方案
  5. Oracle數據庫遠程連接設置的四種方法及其注意事項
責任編輯:趙鵬 來源: 火魔網
相關推薦

2010-04-30 11:58:45

Oracle sequ

2011-05-19 13:25:14

Oracle數據庫

2009-05-13 10:28:30

OracleDUAL數據庫

2010-04-02 13:59:08

Oracle數據庫

2010-04-14 15:14:11

Oracle數據庫

2011-03-29 10:47:49

ORACLE數據庫

2011-05-17 15:02:15

ORACLE數據庫備份

2011-08-18 15:49:21

Oracle厲行計劃

2011-04-11 13:19:41

Oracle數據庫

2009-10-27 16:36:07

Oracle如何解鎖

2010-04-02 17:11:45

Oracle數據庫

2010-04-07 14:22:46

2011-08-11 16:55:34

Oracle數據庫AWR

2011-08-18 17:05:16

Oracle數據庫的服

2011-09-02 10:37:15

Oraclesqlload用法

2021-02-17 13:52:35

數據庫group byMySQL

2009-09-02 18:52:38

Oracle數據庫并行

2010-10-20 09:41:37

卸載Oracle

2010-04-09 16:51:24

Oracle數據庫

2009-02-09 12:52:32

文件加密Oracle數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久网站 | 国产精品三级 | 视频在线一区二区 | 色888www视频在线观看 | 久久久久久综合 | 亚洲第一av | av大片在线观看 | 亚洲福利在线观看 | 免费在线性爱视频 | 成人1区2区 | 久久久久久成人 | 国产第1页 | 日韩一区二区三区在线看 | 最新国产精品 | 久久男人 | 91精品国产一区二区三区 | 一级做a爰片性色毛片16 | 久久久久久久久一区 | 成人精品国产 | 亚洲免费视频播放 | 自拍视频国产 | 国产剧情久久 | 午夜精品一区 | 亚洲一区二区综合 | 亚洲欧美日韩成人在线 | 欧美日本亚洲 | 久久这里只有精品首页 | 久久国内精品 | 国产一区二区成人 | 在线高清免费观看视频 | 成人在线国产 | 国产在线a| 久久国产精品一区二区 | 奇米久久久 | 在线国产一区二区 | 午夜av毛片 | 一区二区在线 | 日本不卡免费新一二三区 | 91看片官网| 狠狠操狠狠干 | 国产午夜av片 |