auto_increment

1.一个表是否只能有一个字段可以设置为自增(auto_increment)?

答案,是。

2.设置为自增auto_increment的字段是否必须是唯一键或主键?

答案,是

3.设置为自增auto_increment的字段是否必须not null?

答案,是。不设置not null语法上没问题,可以执行成功,只不过是mysql默认为自增列添加了not null.

4.自增列必须是整型或数值型?

答案,是。字符类型没法设置自增会报错,这里的整数类型具体指下面这些

tinyint
非常小的整数
smallint
较小整数
mediumint
中等大小整数
int
标准整数
bigint
较大整数
float
单精度浮点数
double
双精度浮点数
decimal
一个串的浮点数

5.如果不设初始值,那么自增列默认从1开始?

答案,是。设置初始值ALTER TABLE t AUTO_INCREMENT =100;

6.AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍

关于无符号类型之前有文章里提到过,这里声明为unsigned只是扩大取值范围,并非必要。

7.AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。一旦达到上限,AUTO_INCREMENT就会失效

原文地址:https://www.cnblogs.com/hebiao/p/14330614.html