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

[原文地址:http://blog.sina.com.cn/s/blog_6090c5640100dnre.html]


這裏所說的自動增長列,主要是指一個表中主鍵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開始
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章