MySQL是一種流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),擁有各種優(yōu)良的特性,其中之一就是自增長度功能。當(dāng)創(chuàng)建新紀(jì)錄并插入到表中時(shí),MySQL會(huì)為自增列分配新值,這個(gè)新值要么是當(dāng)前最大值加一,要么是指定的起始值加一。自增列通常用于創(chuàng)建唯一鍵優(yōu)化查詢,這種情況下他們需要為唯一鍵生成唯一值。
CREATE TABLE example ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) );
在上面的例子中,id列被指定為自增列,MySQL會(huì)自動(dòng)將id列的值遞增,每次新增一行時(shí),id的值都會(huì)自動(dòng)增加1。如果數(shù)據(jù)表中沒有數(shù)據(jù),第一次添加數(shù)據(jù)時(shí),id的值就是1。如果數(shù)據(jù)表中已有數(shù)據(jù),則id的值的基礎(chǔ)上加1。
在某些情況下,我們還需要為自增列設(shè)置特定的屬性,MySQL支持設(shè)置自增列的種子(starting value)和步長(increment)。在創(chuàng)建表時(shí)可以通過語句來指定:
CREATE TABLE example ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) ) AUTO_INCREMENT=1000 INCREMENT=10;
上面的代碼同樣是創(chuàng)建了一個(gè)數(shù)據(jù)表example,不過這里的自增列的種子值為1000,步長為10。此時(shí),新插入的第一條數(shù)據(jù)的id值就是1000,第二個(gè)id值就是1010,以此類推。
自增列非常適合用于唯一標(biāo)識(shí)某些數(shù)據(jù),例如用戶ID、訂單ID、文章ID等等。在使用自增列時(shí),需要注意的是:
- 自增列必須是列族的第一列,也就是說不能在自增列后添加其他列。
- 自增列也可以設(shè)置為NULL,此時(shí)MySQL將返回最小的可用值作為新行的ID。