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


真诚赞赏,手留余香
赞赏
Node.js
Sequelize 事务的使用与Transaction类
2019-07-17
数据结构和算法
订单号该如何生成
2019-07-27
ngtwewy
随机推荐
MySQL的外键总结
CentOS 如何防止 SSH 长时间不操作自动断开连接
PHP 富文本防止 XXS 攻击的方法
依赖注入(DI)和控制反转(Ioc)
MySQL DATETIME 时间查询和转换
Node.js MySQL 连接池和事务
使用N-API 写 Node.js 的 C语言扩展
console 输出彩色日志
Node.js 的 URL 的模块
Koa.js 中间件 koa-session

微信联系我

夜间模式切换
回到顶部