1, 指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引。(不一定要做主键)
2, 指定了auto_increment的列,在插入时:
如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。
3,当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。
4,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。
5,对于MyISAM表,如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。但是对于innodb表,update auto_increment字段,会导致发生报错
6,delete from t3该语句不会引起auto_increment的变化,
7,truncate table 该语句会引起auto_increment的变化,从头开始。因为该命令是原来的表,然后重新创建一个表。 删除速度更快。
8,修改AUTO_INCREMENT字段的起始值
alter table table_name AUTO_INCREMENT=n
但是如果设置的n比目前的数值小的话,执行的sql不会报错,但是不会生效!MyISAM和Innodb均是如此。
9,auto_increment_increment & auto_increment_offset 两个变量的介绍
声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。