MySQL AUTO_INCREMENT 簡介

可以使用複合索引在同一個數據表裏建立多個相互獨立的自增序列,具體作法是這樣的:爲數據表建立一個由多個數據列組成的PRIMARY KEY OR UNIQUE索引,並把AUTO_INCREMENT數據列包括在這個索引裏做爲它的最後一個數據列。這樣,這個複合索引裏,前面的那些數據列每構成一種獨一無二的組合,最末尾的AUTO_INCREMENT數據列就會生成一個與該組合相對應的序列編號。

    咱們常常要用到惟一編號,以標識記錄。在MySQL中可經過數據列的AUTO_INCREMENT屬性來自動生成。MySQL支持多種數據表,每種數據表的自增屬性都有差別,這裏將介紹各類數據表裏的數據列自增屬性。 spa

1 用法: 索引

CREATE TABLE test
(
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(15) NOT NULL
)AUTO_INCREMENT = 100; table

 

可在建表時可用「AUTO_INCREMENT=n」選項來指定一個自增的初始值。 test

可用alter table table_name AUTO_INCREMENT=n命令來重設自增的起始值。 im

 


說明: 數據

(1)若是把一個NULL插入到一個AUTO_INCREMENT數據列裏去,MySQL將自動生成下一個序列編號。編號從1開始,並1爲基數遞增。 tab

(2)把0插入AUTO_INCREMENT數據列的效果與插入NULL值同樣。但不建議這樣作,仍是以插入NULL值爲好。 di

(3)當插入記錄時,沒有爲AUTO_INCREMENT明確指定值,則等同插入NULL值。 co

(4)當插入記錄時,若是爲AUTO_INCREMENT數據列明確指定了一個數值,則會出現兩種狀況,狀況一,若是插入的值與已有的編號重複,則會出現出錯信息,由於AUTO_INCREMENT數據列的值必須是惟一的;狀況二,若是插入的值大於已編號的值,則會把該插入到數據列中,並使在下一個編號將從這個新值開始遞增。也就是說,能夠跳過一些編號。 background

(5)若是用UPDATE命令更新自增列,若是列值與已有的值重複,則會出錯。若是大於已有值,則下一個編號從該值開始遞增。

相關文章
相關標籤/搜索