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 = 值;

前提条件:

  1. 一个表中只能有一个自增字段
  2. 该字段的数据类型必须是整数类型
  3. 该字段必须定义为键,如UNIQUE KEY, PRIMARY KEY
  4. 默认的自增起始值是1,步长是1
  5. 在插入时,若自增字段插入NULL、0、DEFAULT或省略该字段,则会使用自增值
  6. 自增时,会从该字段中的所有值中选一个最大值,然后加一个步长
  7. 若插入的值是一个具体的值,则不会使用自增值
  8. 用delete清空表时,自增值不会改变
  9. 用truncate清空表时,自增值还原

来看一个实例

// 创建一个表并设置自增id
create table user(
id int auto_increment primary key,
name varchar(20)
);

修改起始值

如何修改的自增的起始值,有两种方式

  1. 第一种方式,在创建表时给出
create table user(
id int auto_increment primary key,
name varchar(20)
)auto_increment=100;
  1. 第二种方式
-- 设置表的自增起始值
alter table user auto_increment= 100;

修改步长

步长的值的给出有两种方式,一种是基于会话的步长,另一种是基于全局的步长。

  1. 基于会话级别的
-- 查看会话自增值
show session variables like 'auto_inc%';
-- 设置自增步长为100
set session auto_increment_increment = 100;
-- 设置自增起始值为5
set session auto_increment_offset = 5;

当本次的会话关闭后,再次连接数据库,这些属性就会恢复到默认值

设置完上面的代码后,再来试一下

  1. 全局级别
-- 查看全局自增值
show global variables like 'auto_inc%';
-- 设置全局自增步长
set global auto_increment_increment = 100;
-- 设置全局自增起始值
set global auto_increment_offset = 9;

当会话和全局中都有同一个变量时,优先使用会话的

mysql 自增字段、属性相关推荐

  1. mysql自增字段_MySQL自增字段的常用语句

    学习MySQL数据库,MySQL自增字段是最基础的部分之一,下面为您介绍一些MySQL自增字段的常用语句,希望对您学习MySQL自增字段能些许帮助. 1.创建表格时添加: create table t ...

  2. MySQL数据类型及字段属性

    MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类: 数值 日期/时间 字符串(字符) 数值类型 MySQL支持所有标准SQL数值 ...

  3. MySQL自增字段并发插入导致死锁

    MySQL带自增字段的表在并发插入时发生死锁 问题 'int' object has no attribute 'encode'", <class 'mysql.connector.e ...

  4. oracle,mysql常用基本操作 字段属性

    1.Oracle 1.向数据表添加注释及查询表注释 SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME='表名'; --查询注释 COMMENT ONTA ...

  5. MySQL自增字段不连续的原因和解决方法

    造成自增字段不连续的原因 1)唯一键冲突导致自增字段值不连续 示例1:创建数据表tb_student3,插入导致唯一键冲突的记录后,在插入数据 mysql> CREATE TABLE tb_st ...

  6. MySql中对应字段属性为int取出来却为Long

    今天遇到了如题的问题,接下来看下控制台的报错信息: java.lang.IllegalArgumentException: Can not set int field cn.zyx.po.User.i ...

  7. mysql自增字段不连续_MySQL中自增主键不连续之解决方案。(20131109)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 今天只做了一件事情,但解决了很大的问题.相信这也是令很多程序员和数据库管理员头疼的事情. 假设在一MySQL数据表中,自增的字段为id,唯一字段为abc, ...

  8. python自增_python mysql自增字段AUTO_INCREMENT值的修改方式

    在之前得文章中我们说过,如果使用delete对数据库中得表进行删除,那么只是把记录删除掉,并且id的值还会保持上次的状态. 即删除之前如果有四条数据,删除之后,再添加新的数据,id怎会从5开始. 但是 ...

  9. python为mysql设置id自增长_python mysql自增字段AUTO_INCREMENT值的修改方式

    在之前得文章中我们说过,如果使用delete对数据库中得表进行删除,那么只是把记录删除掉,并且id的值还会保持上次的状态. 即删除之前如果有四条数据,删除之后,再添加新的数据,id怎会从5开始. 但是 ...

最新文章

  1. 冯诺依曼计算机程序及其执行,第4章冯.诺依曼计算机:机器级程序与其执行练习题答案解析...
  2. python编程基础课后答案-中国大学慕课moocPython编程基础课后答案
  3. docker-engine安装好了,下一步该做什么?
  4. 一个通用Makefile详解
  5. cad细等线体不显示_CAD打印文字不显示?很多人不知道这个知识点!
  6. MathExam任务一
  7. 服务器cpu,内存正常, 部分网站打不开,提示死锁,应用程序池回收就正常,如何解决?...
  8. CodeForces - 1312C Adding Powers(思维+位运算)
  9. Materialized Views
  10. plsql存过声明游标_plsql--游标用法
  11. python常用单词自由且开放_python常用英语单词词汇 unit7
  12. revit如何根据坐标进行画线_生物水处理专用消泡剂是如何根据生物水处理工艺原理进行消泡的?...
  13. laravel引入自定义全局函数
  14. python中sorted函数的作用_Python中排序方法sort、函数sorted的key参数的作用分析
  15. cuSPARSE库:(十五)已经弃用的函数(1)
  16. powershell自动化操作AD域、Exchange邮箱系列(6)——获取并监控内存、CPU占用率
  17. 安装MySQL和出现的问题解决
  18. 在 Mac App Store 上如何查看未完成的下载?
  19. Boostrap(2)
  20. 京东咚咚架构演讲读后感

热门文章

  1. python使用wx绘界面,布局自已的toolbar,使控件右对齐
  2. 【题解】helloworldroom#4906. 摩尔斯电码
  3. 魅蓝metal是android吗,魅蓝metal电信版和公开版/联通版相比有什么区别?
  4. 华为虚拟化平台FusionCompute架构及安装笔记
  5. springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven
  6. 测试工程师用 Shell 定位 Bug 的正确姿势 | 福利
  7. 【Vue】filter 过滤器用法
  8. 散户打板,一夜暴富?Pyhton量化11万次涨停,跟着买,收益竟...?【邢不行
  9. 基于C#+unity的2D跑酷闯关对战冒险游戏设计 课程报告+答辩PPT+源码
  10. 三星p1000升级android10,三星 P1000 CM团队13.09.01定制 CM10.1 纯净版刷机包