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;
当会话和全局中都有同一个变量时,优先使用会话的
mysql 自增字段、属性相关推荐
- mysql自增字段_MySQL自增字段的常用语句
学习MySQL数据库,MySQL自增字段是最基础的部分之一,下面为您介绍一些MySQL自增字段的常用语句,希望对您学习MySQL自增字段能些许帮助. 1.创建表格时添加: create table t ...
- MySQL数据类型及字段属性
MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类: 数值 日期/时间 字符串(字符) 数值类型 MySQL支持所有标准SQL数值 ...
- MySQL自增字段并发插入导致死锁
MySQL带自增字段的表在并发插入时发生死锁 问题 'int' object has no attribute 'encode'", <class 'mysql.connector.e ...
- oracle,mysql常用基本操作 字段属性
1.Oracle 1.向数据表添加注释及查询表注释 SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME='表名'; --查询注释 COMMENT ONTA ...
- MySQL自增字段不连续的原因和解决方法
造成自增字段不连续的原因 1)唯一键冲突导致自增字段值不连续 示例1:创建数据表tb_student3,插入导致唯一键冲突的记录后,在插入数据 mysql> CREATE TABLE tb_st ...
- MySql中对应字段属性为int取出来却为Long
今天遇到了如题的问题,接下来看下控制台的报错信息: java.lang.IllegalArgumentException: Can not set int field cn.zyx.po.User.i ...
- mysql自增字段不连续_MySQL中自增主键不连续之解决方案。(20131109)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 今天只做了一件事情,但解决了很大的问题.相信这也是令很多程序员和数据库管理员头疼的事情. 假设在一MySQL数据表中,自增的字段为id,唯一字段为abc, ...
- python自增_python mysql自增字段AUTO_INCREMENT值的修改方式
在之前得文章中我们说过,如果使用delete对数据库中得表进行删除,那么只是把记录删除掉,并且id的值还会保持上次的状态. 即删除之前如果有四条数据,删除之后,再添加新的数据,id怎会从5开始. 但是 ...
- python为mysql设置id自增长_python mysql自增字段AUTO_INCREMENT值的修改方式
在之前得文章中我们说过,如果使用delete对数据库中得表进行删除,那么只是把记录删除掉,并且id的值还会保持上次的状态. 即删除之前如果有四条数据,删除之后,再添加新的数据,id怎会从5开始. 但是 ...
最新文章
- 冯诺依曼计算机程序及其执行,第4章冯.诺依曼计算机:机器级程序与其执行练习题答案解析...
- python编程基础课后答案-中国大学慕课moocPython编程基础课后答案
- docker-engine安装好了,下一步该做什么?
- 一个通用Makefile详解
- cad细等线体不显示_CAD打印文字不显示?很多人不知道这个知识点!
- MathExam任务一
- 服务器cpu,内存正常, 部分网站打不开,提示死锁,应用程序池回收就正常,如何解决?...
- CodeForces - 1312C Adding Powers(思维+位运算)
- Materialized Views
- plsql存过声明游标_plsql--游标用法
- python常用单词自由且开放_python常用英语单词词汇 unit7
- revit如何根据坐标进行画线_生物水处理专用消泡剂是如何根据生物水处理工艺原理进行消泡的?...
- laravel引入自定义全局函数
- python中sorted函数的作用_Python中排序方法sort、函数sorted的key参数的作用分析
- cuSPARSE库:(十五)已经弃用的函数(1)
- powershell自动化操作AD域、Exchange邮箱系列(6)——获取并监控内存、CPU占用率
- 安装MySQL和出现的问题解决
- 在 Mac App Store 上如何查看未完成的下载?
- Boostrap(2)
- 京东咚咚架构演讲读后感
热门文章
- python使用wx绘界面,布局自已的toolbar,使控件右对齐
- 【题解】helloworldroom#4906. 摩尔斯电码
- 魅蓝metal是android吗,魅蓝metal电信版和公开版/联通版相比有什么区别?
- 华为虚拟化平台FusionCompute架构及安装笔记
- springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven
- 测试工程师用 Shell 定位 Bug 的正确姿势 | 福利
- 【Vue】filter 过滤器用法
- 散户打板,一夜暴富?Pyhton量化11万次涨停,跟着买,收益竟...?【邢不行
- 基于C#+unity的2D跑酷闯关对战冒险游戏设计 课程报告+答辩PPT+源码
- 三星p1000升级android10,三星 P1000 CM团队13.09.01定制 CM10.1 纯净版刷机包