MySQL AUTO_INCREMENT 自动增长的一些知识

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 两个变量的介绍


声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
随机推荐
SQL 注入的生命力
JavaScript 原生拖放
WP_Query 函数
WordPress 分页
wp_signon() 自定义用户登录函数
CSS3 实现 Switch 开关
WordPress 分类添加自定义字段
WordPress 调用自定义头像