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


真诚赞赏,手留余香
赞赏
随机推荐
手机APP界面颜色搭配案例
vue+webpack 升级后在原有项目上的适配问题
SASS/SCSS 快速上手
PS手绘20171012
为什么Axios ajax每次patch都会有两次网络请求?
国内互联网公司的APP起名套路大全
Photoshop 智能对象 学习笔记
发送header文件头信息实现文件下载
大白虎 2019.02.26 两小时练习
mysql无法启动ERROR! MySQL is running but PID file could not be found
QQ号

微信联系我

夜间模式切换
回到顶部