Oracle與Mysql自動成長列(id)的區別

來源:互聯網
上載者:User

這裡所說的自動成長列,主要是指一個表中主鍵id的自動成長。

Oracle與Mysql不同,不能在CREATE建立表時設定自動成長列功能。

Oracle必須通過建立sequence序列來實現自動增加列的功能。

首先要建立序列(當然必須要先建好表,添加好主鍵約束,這列假設約束名為test_sequence)

                  create sequence test_sequence
                     [increment by 1]--增長的步長
                     [start with 1]--從幾開始增長
                     [maxvalue 100]--增長的最大值
                     [nomaxvalue]--不設最大值

                     [cycle|nocycle];--迴圈增長/不迴圈增長

定義了sequence以後就可以在insert語句中使用test_sequence.nextval和test_sequence.currval。
test_sequence.currval返回當前sequence的值,但必須在第一次初始化test_sequence.nextval後才能使用test_sequence.currval。
test_sequence.nextval會增加sequence的值,並返回增加後的sequence的值。

然後可以alter修改sequence序列,來改變自動增加的方式。
alter sequence test_sequence increment by 1 ...;後面的選項跟建表時一樣。

還可以用drop刪除sequence序列。
drop sequence test_sequence;

Mysql先對Oracle來說就簡單多了,可以在建表時進行設定。

create table(
   id int(10) auto_increment primary key
  )auto_increment=1;

auto_increment=1設定自動成長列從1開始

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.