1. 程式人生 > >mysql非主鍵自增長

mysql非主鍵自增長

blog nta tro border 查看 code cnblogs ref font

mysql並非只有主鍵才能自增長,而是設為鍵的列就可以設置自增長。

如下:
1 2 3 4 CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL );
結果如下: 技術分享圖片 如果把col1列設為鍵,就可以創建自增。
1 2 3 4 5 CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL, key(col1) );
結果如下: 技術分享圖片 如果我們把id設為主鍵,仍然可以創建成功。
1 2 3 4 5 CREATE TABLE t2 ( id INT PRIMARY KEY, col1 INT auto_increment NOT NULL, key(col1) );
結果如下: 技術分享圖片 所以自增列必須是鍵,但不一定非是主鍵。但一張表能否有多個自增列? 答:一張表只能有一個自增列
1 2 3 4 5 CREATE TABLE t3 ( id INT PRIMARY KEY auto_increment, col1 INT auto_increment NOT NULL, key(col1) );
結果如下: 技術分享圖片

得出的結論為:每張表只能設置一個字段為自增長字段,這個字段可以是主鍵,也可以不是主鍵,如果不是主鍵,則必須設置為一種“鍵(key)”

其實,主鍵(primary key)也是鍵(key)的一種,key還包括外鍵(foreign key)、唯一鍵(unique key)等,關於key的討論可以查看帖子http://www.cnblogs.com/tanzq/p/9064511.html

mysql非主鍵自增長