mysql非主键自增长
Posted Fantasy_99
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql非主键自增长相关的知识,希望对你有一定的参考价值。
mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长。
如下:
1
2
3
4
|
CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL ); |
![mysql非主键自增长 - 怀素真 - 因上努力 果上随缘 mysql非主键自增长 - 怀素真 - 因上努力 果上随缘](http://img2.ph.126.net/XayWjI55wY2ImE1dqp_qrQ==/6608423323726480100.png)
1
2
3
4
5
|
CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL, key(col1) ); |
![mysql非主键自增长 - 怀素真 - 因上努力 果上随缘 mysql非主键自增长 - 怀素真 - 因上努力 果上随缘](http://img1.ph.126.net/TVmstLbu3unSia26hNQ5hQ==/6619209532794011611.png)
1
2
3
4
5
|
CREATE TABLE t2 ( id INT PRIMARY KEY, col1 INT auto_increment NOT NULL, key(col1) ); |
![mysql非主键自增长 - 怀素真 - 因上努力 果上随缘 mysql非主键自增长 - 怀素真 - 因上努力 果上随缘](http://img0.ph.126.net/3VXXhH__m_rMdHAHt1jg6g==/1056375587613085734.png)
所以自增列必须是键,但不一定非是主键。但一张表能否有多个自增列?
答:一张表只能有一个自增列。
1
2
3
4
5
|
CREATE TABLE t3 ( id INT PRIMARY KEY auto_increment, col1 INT auto_increment NOT NULL, key(col1) ); |
![mysql非主键自增长 - 怀素真 - 因上努力 果上随缘 mysql非主键自增长 - 怀素真 - 因上努力 果上随缘](http://img1.ph.126.net/UKHiYlEqJnTFXXIN1_p1Vw==/4929471267234237622.png)
得出的结论为:每张表只能设置一个字段为自增长字段,这个字段可以是主键,也可以不是主键,如果不是主键,则必须设置为一种“键(key)”
其实,主键(primary key)也是键(key)的一种,key还包括外键(foreign key)、唯一键(unique key)等,关于key的讨论可以查看帖子http://www.cnblogs.com/tanzq/p/9064511.html
以上是关于mysql非主键自增长的主要内容,如果未能解决你的问题,请参考以下文章