auto_increment测试:
一个表是否可以有多个列使用auto_increment?
只有一个列使用auto_increment:
mysql> create table tab_auto_incr(a int not null auto_increment,b int not null,primary key (a));
Query OK, 0 rows affected (0.17 sec)
mysql> drop table tab_auto_incr;
Query OK, 0 rows affected (0.03 sec)
没问题,在b字段做动作
mysql> create table tab_auto_incr(a int not null,b int not null auto_increment,unique key (b));
Query OK, 0 rows affected (0.16 sec)
mysql> drop table tab_auto_incr;
Query OK, 0 rows affected (0.04 sec)
如果a是主键,b是唯一键,那么
mysql> create table tab_auto_incr(a int not null,b int not null,primary key (a),unique key (b));
Query OK, 0 rows affected (0.23 sec)
mysql> drop table tab_auto_incr;
Query OK, 0 rows affected (0.03 sec)
也没有问题,那么如果我在一个表上两个字段指定auto_increment呢?
mysql> create table tab_auto_incr(a int not null auto_increment,b int not null auto_increment,primary key (a),unique key (b));
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
不行!说明一个表只能有一个auto_increment,且该列必须是primary key或者unique key。