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就会失效