mysql 自增字段、属性
mysql自增属性
参考文章
https://www.php.cn/mysql-tutorials-489209.html
https://blog.csdn.net/qq_41045806/article/details/108310772
在Mysql中,可以为某一属性设置自增属性,可以很好地为我们解决属性值重复的问题。
在mysql中,使用auto_increment
关键字来设置列属性自增
字段名 属性类型 AUTO_INCREMENT; //设置自增的起始值 alter table 表名 auto_increment = 值; // 设置自增的步长 alter table 表名 auto_increment_offset = 值;
前提条件:
- 一个表中只能有一个自增字段
- 该字段的数据类型必须是整数类型
- 该字段必须定义为键,如UNIQUE KEY, PRIMARY KEY
- 默认的自增起始值是1,步长是1
- 在插入时,若自增字段插入NULL、0、DEFAULT或省略该字段,则会使用自增值
- 自增时,会从该字段中的所有值中选一个最大值,然后加一个步长
- 若插入的值是一个具体的值,则不会使用自增值
- 用delete清空表时,自增值不会改变
- 用truncate清空表时,自增值还原
来看一个实例
// 创建一个表并设置自增id create table user( id int auto_increment primary key, name varchar(20) );
修改起始值
如何修改的自增的起始值,有两种方式
- 第一种方式,在创建表时给出
create table user( id int auto_increment primary key, name varchar(20) )auto_increment=100;
- 第二种方式
-- 设置表的自增起始值 alter table user auto_increment= 100;
修改步长
步长的值的给出有两种方式,一种是基于会话的步长,另一种是基于全局的步长。
- 基于会话级别的
-- 查看会话自增值 show session variables like 'auto_inc%'; -- 设置自增步长为100 set session auto_increment_increment = 100; -- 设置自增起始值为5 set session auto_increment_offset = 5;
当本次的会话关闭后,再次连接数据库,这些属性就会恢复到默认值
设置完上面的代码后,再来试一下
- 全局级别
-- 查看全局自增值 show global variables like 'auto_inc%'; -- 设置全局自增步长 set global auto_increment_increment = 100; -- 设置全局自增起始值 set global auto_increment_offset = 9;
当会话和全局中都有同一个变量时,优先使用会话的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现