• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在oracle中使用自增字段

    發表于:2013-11-19來源:IT博客大學習作者:tim點擊數: 標簽:oracle
    大家都知道,oracle是不支持auto_increment字段的,但可以通過創建Sequence對象來使用自增序列,語法是: SQL代碼 create sequence SEQ_SUBS_ID

      大家都知道,oracle是不支持auto_increment字段的,但可以通過創建Sequence對象來使用自增序列,語法是:

      SQL代碼

      create sequence SEQ_SUBS_ID

      increment by 1

      start with 1

      maxvalue 10000000000

      nocycle ;

      其中SEQ_SUBS_ID為序列名,increment by 1表示步長為1,start with 1表示初始值為1,maxvalue表示最大值 nocycle表示不可循環取值

      要查看已創建的Sequence,執行的語句是:

      SQL代碼

      select * from user_sequences;

      其中返回的SEQUENCE_NAME為序列名,LAST_NUMBER為當前值

      要取得下一ID,可以使用:

      SQL代碼

      select 序列名.nextval from 表名

      這個語句會返回多個序列號(會被緩存起來),要取得一個序號,表名使用dual(虛表)即可

      使用PEAR::DB操作

      PEAR::DB使用nextId($seqName)來封裝了自增序列的操作,如果是mysql,pear同樣放棄字段自增的功能,而使用創建一個表的方法去管理自增ID,而在ORACLE中,則直接使用SEQUENCE對象操作

      即在pear::DB中,要獲得下一ID,不管是使用MYSQL還是ORACLE,都使用$db -> nextId($seqName)即可,一般地$seqName為表名,當指定的序列未存在時,可使用第二參數指定自動創建

      在pear內部,nextId會將$seqName按指定的格式處理,默認是加上"_seq"的后綴,所以,如果你操作的是已存在的使用其它方式創建的序列,很可能會發生沖突,要改變這一格式,使用

      PHP代碼

      $db -> setOption(\'seqname_format\',"SEQ_%s");//經這樣修改,nextId(\'TABLE1\')所操作的SEQUENCE變成了SEQ_TABLE1了(如果是默認,則是TABLE1_seq)

    原文轉自:http://blogread.cn/it/article/180

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>