mysql auto_increment自增初始值与步长
自增初始值
一、alter的使用
默认初始值为1 步长为1的情况
1、建表
2、插入数据
当插入数据可以看到步长为1,起始值为1
3.增加一列数据时
默认在加上步长
4.删除后在原表后增加一列数据的情况
原表数据剔除后依旧在原基础上递增,这里和delete from 有关
5.修改auto_increment后,插入一行数据后,原表递增情况
alter table 表名 auto_Increment=n;
(1)、未改变:原表内有一行数据 auto_increment修改 初始值依旧为1,步长为1
(2)当原表内无数据时,auto_Increment alter后会发生改变
初始值为设定值,步长依旧为1
a、使用delete from 删除时
b、使用truncate table use 删除时
二、在新建表时设定auto_increment
(1)、建表时设定auto_increment 的值初始值可变,步长不变
步长
自增步长
基于会话级别:
-
show session variables like 'auto_inc%"; --查看会话步长
-
set session auto_increment_increment=4;
这里新建了一个初始值为1的值,通过set sessionauto_increment_increment 步
-
-
set session auto_increment_offset=2; --设置自增起始值为2;
通过truncate table user_set 后重新设定起始值
可以看到这里起始值变成了2(由于上面设定了auto_increment_Increment的值,当前窗口口未结束,故步长还是为4)
基于全局级别
-
show global variables like 'auto_inc%"; --查看全局步长
-
set global auto_increment_increment=3; --设置全局步长为3 (关闭会话,再进行数据库操作不恢复到默认值)
-
set global auto_increment_offset=2; --设置自增起始值为2;
总结:
设定自增初始值:
-
-
如果原表有数据则自增初始值设定不生效
-
如果原表无数据,或者delete、truncate了则alter设定依旧生效,步长某人为1
-
-
建表时设定auto_increment=某值 即可设定初始值
-
注意delete from 表格后,自增初始值会紧跟上次数
-
使用truncate table 表格 则不会
-
-
通过set session auto_increment_Increment =某值,可以改变该窗口会话下的初始值,同样注意是否原数据,以及删除方式delete 与truncate的区别
-
set global auto_increment_increment= 某值 ,改变全局步长,步推荐
设定自增步长:
-
set session auto_increment_increment=4;
-
set global auto_increment_increment=3; --设置全局步长为3 (关闭会话,再进行数据库操作不恢复到默认值)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!