這里所說(shuō)的自動(dòng)增長(zhǎng)列,主要是指一個(gè)表中主鍵id的自動(dòng)增長(zhǎng)。
Oracle與Mysql不同,不能在CREATE建立表時(shí)設(shè)置自動(dòng)增長(zhǎng)列功能。
Oracle必須通過(guò)創(chuàng)建sequence序列來(lái)實(shí)現(xiàn)自動(dòng)增加列的功能。
首先要建立序列(當(dāng)然必須要先建好表,添加好主鍵約束,這列假設(shè)約束名為test_sequence)
create sequence test_sequence
[increment by 1]--增長(zhǎng)的步長(zhǎng)
[start with 1]--從幾開(kāi)始增長(zhǎng)
[maxvalue 100]--增長(zhǎng)的最大值
[nomaxvalue]--不設(shè)最大值
[cycle|nocycle];--循環(huán)增長(zhǎng)/不循環(huán)增長(zhǎng)
定義了sequence以后就可以在insert語(yǔ)句中使用test_sequence.nextval和test_sequence.currval。
test_sequence.currval返回當(dāng)前sequence的值,但必須在第一次初始化test_sequence.nextval后才能使用test_sequence.currval。
test_sequence.nextval會(huì)增加sequence的值,并返回增加后的sequence的值。
然后可以alter修改sequence序列,來(lái)改變自動(dòng)增加的方式。
alter sequence test_sequence increment by 1 ...;后面的選項(xiàng)跟建表時(shí)一樣。
還可以用drop刪除sequence序列。
drop sequence test_sequence;
Mysql先對(duì)Oracle來(lái)說(shuō)就簡(jiǎn)單多了,可以在建表時(shí)進(jìn)行設(shè)置。
auto_increment=1設(shè)置自動(dòng)增長(zhǎng)列從1開(kāi)始
標(biāo)簽:宜春 淮南 酒泉 六安 孝感 泰安 海北 葫蘆島
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle與Mysql自動(dòng)增長(zhǎng)列(id)的區(qū)別》,本文關(guān)鍵詞 Oracle,與,Mysql,自動(dòng),增,長(zhǎng)列,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。