<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0

    CREATE SEQUENCE

    Name

    CREATE SEQUENCE — 創建一個新的序列號生成器
    CREATE SEQUENCE seqname [ INCREMENT increment ]
        [ MINVALUE minvalue ] [ MAXVALUE maxvalue ]
        [ START start ] [ CACHE cache ] [ CYCLE ]
      

    輸入

    seqname

    將要創建的序列號名.

    increment

    INCREMENT increment 子句是可選的.一個正數將生成一個遞增的序列, 一個負數將生成一個遞減的序列.缺省值是一(1).

    minvalue

    可選的子句 MINVALUE minvalue 決定一個序列可生成的最小值.缺省分別是遞增序列為1遞減為-2147483647.

    maxvalue

    使用可選子句 MAXVALUE maxvalue 決定序列的最大值.缺省的分別是遞增為2147483647,遞減為-1.

    start

    可選的 START start 子句 使序列可以從任意位置開始.缺省初始值是遞增序列為 minvalue 遞減序列為 maxvalue.

    cache

    CACHE cache 選項使序列號預分配并且為快速訪問存儲在內存里面. 最小值(也是缺省值)是1(一次只能生成一個值, 也就是說沒有緩存).

    CYCLE

    可選的 CYCLE 關鍵字可用于使序列到達 最大值(maxvalue)最小值(minvalue) 時可復位并繼續下去.如果達到極限,生成的下一個數據將分別是 最小值(minvalue)最大值(maxvalue)

    輸出

    CREATE

    命令成功執行的返回信息.

    ERROR: Relation 'seqname' already exists

    如果聲明的序列已經存在.

    ERROR: DefineSequence: MINVALUE (start) can't be >= MAXVALUE (max)

    如果聲明的初始值超出范圍,返回此信息.

    ERROR: DefineSequence: START value (start) can't be < MINVALUE (min)

    如果聲明的初始值超出范圍,返回此信息.

    ERROR: DefineSequence: MINVALUE (min) can't be >= MAXVALUE (max)

    如果最小值和最大值不連貫.

    描述

    CREATE SEQUENCE 將向當前數據庫里增加一個新的序列號生成器. 包括創建和初始化一個新的名為 seqname的 單行表.生成器將為使用此命令的用戶"所有".

    在序列創建后,你可以使用函數 nextval(seqname) 從序列中獲得新的數字. 函數 currval('seqname') 可用于獲取對當前會話中指定序列的上一次 nextval(seqname) 調用返回的數字. 函數 setval('seqname', newvalue) 可用于設置指定的序列的當前值.下一次 nextval(seqname) 調用將返回所給的值加上序列增值.

    使用象

    SELECT * FROM seqname;
       
    這樣的查詢可以獲得序列的參數.除了獲取最初的參數外,你可以用
    SELECT last_value FROM seqname;
       
    獲得任意后端分配的最后一個值.

    要避免從同一個序列獲取數字的并發的事務的鎖定, nextval 操作永不回卷;也就是說,一旦一個數值被抓走, 那么就認為它已經用過了,即使做 nextval 的事務稍后退出也一樣. 這就意味著退出的事務可能在該序列的賦值里留下未用的"洞". setval 操作也從不回卷.

    Caution

    如果用語序列對象的緩存的設置大于一, 而且該對象可能被多個后端同時使用就有可能產生不可預料的結果.每個后端 在訪問過序列對象并遞增序列對象的最后值后, 將分配跟在序列值后面"緩存數".這樣,該后端在下面的(緩存數-1) 次返回序列值時將使用預分配好的數值,而不對共享對象做任何更新. 所以,已經分配但在當前會話中沒有使用的數字 將會丟失.而且,盡管多個后端保證分配獨立的序列值, 當考慮所有的后端時該數值卻有可能是亂序的.(例如,設置 緩存數為10,后端 A 可能保留數值 1..10 并且返回 nextval=1, 而后端 B 可能保留數值 11..20 并在后端A生成nextval=2之 前返回 nextval=11.)因此, 將緩存數設為一可以安全地假設 nextval 的數值是順序生成的; 當緩存數設置大于一,我 們只能假設 nextval 值都是獨立的, 而不能假設它們都是純粹順序生成的. 同樣,last_value 將反映由任何后端保留的最 后數值,不管它是不是nextval曾返回過的.

    注意

    使用 DROP SEQUENCE 語句來刪除序列.

    每個后端使用其自身的緩存來存儲分配的數字. 已分配但當前會話沒有使用的數字將丟失,導致序列里面出現"空洞".

    用法

    創建一個叫 serial的遞增序列,從101開始:

    CREATE SEQUENCE serial START 101;
      

    從此序列中選出下一個數字:

    SELECT NEXTVAL ('serial');
        
    nextval
    -------
        114
       

    在一個 INSERT 中使用此序列:

    INSERT INTO distributors VALUES (NEXTVAL('serial'),'nothing');
       

    在一個 COPY FROM 后設置序列:

    CREATE FUNCTION distributors_id_max() RETURNS INT4
        AS 'SELECT max(id) FROM distributors' 
        LANGUAGE 'sql';
    BEGIN;
        COPY distributors FROM 'input_file';
        SELECT setval('serial', distributors_id_max());
    END;
       

    兼容性

    SQL92

    CREATE SEQUENCEPostgres 語言擴展. 在SQL92里沒有 CREATE SEQUENCE 語句.



    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://m.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2006-06-02 18:52 zhyiwww 閱讀(1493) 評論(0)  編輯  收藏 所屬分類: database
    主站蜘蛛池模板: 国产一级片免费看| 韩国免费A级毛片久久| 57pao国产成视频免费播放| 亚洲AV无码乱码国产麻豆| 男女作爱在线播放免费网站| 亚洲女初尝黑人巨高清| 国产婷婷成人久久Av免费高清| 亚洲精品字幕在线观看| 日韩视频在线观看免费| 亚洲一区二区在线免费观看| 久久综合给合久久国产免费 | 亚洲日本乱码卡2卡3卡新区| 妻子5免费完整高清电视| 久久亚洲精品国产亚洲老地址| 女人被免费视频网站| 男男黄GAY片免费网站WWW| 一本色道久久综合亚洲精品高清| 亚欧乱色国产精品免费视频| 国产亚洲精品国产| 免费不卡视频一卡二卡| 国产精品亚洲专区无码牛牛 | 亚洲色图校园春色| 免费毛片在线看片免费丝瓜视频 | 亚洲日韩精品无码AV海量| 国产成人免费片在线观看| 香蕉国产在线观看免费| 国产成人亚洲精品青草天美 | 四虎影视永久免费观看| 一级视频免费观看| 亚洲综合精品一二三区在线| 好爽…又高潮了毛片免费看| 亚洲免费视频一区二区三区| 亚洲嫩草影院久久精品| 国产精品冒白浆免费视频| 两性色午夜视频免费网| 亚洲一区在线免费观看| 亚洲国产成人精品女人久久久 | 亚洲av永久无码一区二区三区| 亚洲精品偷拍视频免费观看| 69视频免费在线观看| 免费激情网站国产高清第一页|