MySQL中,一张表只能有一个自增,但不一定是主键自增。
首先创建一个测试表。12345create table test(id int(11) primary key,sid int(11) not null auto_increment,name varchar(30) not null,key(sid));
接着插入一条语句。1insert into test(id, name) values(1, 'a');
发现sid非主键自增。
原理
:ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
意思大义是:只能有一个自动列,并且必须被定义为键(key)。
翻译成白话文就是说,普通列是没办法创建自增长的。
结论
: MySQL中的每张表只能设置一个字段为自增长,这个字段可以是非主键,但必须是一种键(key)。