首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL字段增长AUTO_INCREMENT用法实例详解

之前有碰到过开发同事指出一张InnoDB增列 AUTO_INCREMENT 莫明的变大,由于这张是通过MySQLdump导出导入的。...问题排查: 1、首先,查看表表义的sql部分的 auto_increment 部分是正常,所以排除是导入问题所引起的; 2、最后,经过沟通了解怀疑是插入时指定增列的,并且过大,随之发现增列的出错时又进行大量删除时引起的问题...无论 AUTO_INCREMENT 处于哪种锁模式下,增列分配的如果大于增列所属字段类型的最大,则增列分配机制就不会生效。...混合模式插入增列分配 测试表: -- t1中无数据,但增列下一个分配从101开始 (root@localhost) [test] > show create table t1\G; ***...如果是空,则增列的下一个分配为 1 ,这个空时默认由参数 auto_increment_offset 决定。 当中指定增列,如果没有为增列指定,则由计数器分配。

5.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

mysql已存在的增加字段

需求: 已有的mysql数据,希望增加一个增的字段,并设置新数据的初始。 实际上不复杂,只是做个备忘。...InnoDB DEFAULT CHARSET=utf8; 测试数据: INSERT INTO `t_abc` (`name`) VALUES ('mike'), ('tom'), ('jack'); 添加字段并设置...新数据的起始 /*增加一个增主键字段,分两步操作*/ /*首先增加字段*/ alter table t_abc add column id int auto_increment primary...key; /*执行完上面这一条,字段增加,但为空*/ /*执行这一条,它会自动为已存在的数据的字段赋初值,从1开始,同时将后续新增的数据从100开始*/ alter table t_abc auto_increment...key; /*这里没有指定任何数值,执行完后只为字段赋从1开始的初始,其实隐含的设置当前字段从1开始*/ alter table t_abc auto_increment; /*将所有数据增加

10.9K10

MySQL 约束与增长

# MySQL 约束与增长 mysql约束 基本介绍 primary key(主键)-基本使用 not null和unique(唯一) foreign key(外键) check 商店售货系统设计案例...增长 增长基本介绍 增长使用细节 # mysql约束 # 基本介绍 约束用于确保数据库的数据满足特定的商业规则。...一张最多只能有一个主键,但可以是复合主键主键的指定方式有两种 直接在字段名后指定:字段名primakry key在定义最后写primary key(列名); 使用desc名,可以看到primary...# 增长基本介绍 # 增长使用细节 一般来说增长是和primary key配合使用的 增长也可以单独使用[但是需要配合一个unique] 增长修饰的字段为整数型的(虽然小数也可以但是非常非常少这样使用...) 增长默认从1开始,你也可以通过如下命令修改altertable名auto increment=新的开始; 如果你添加数据时,给增长字段(列)指定的有,则以指定的为准,如果指定了增长,一般来说

3.1K30

python mysql字段AUTO_INCREMENT的修改方式

在之前得文章中我们说过,如果使用delete对数据库中得进行删除,那么只是把记录删除掉,并且id的还会保持上次的状态。 即删除之前如果有四条数据,删除之后,再添加新的数据,id怎会从5开始。...这个时候我们就要学习去修改数据的一些属性值了,而这个属性就是AUTO_INCREMENT。 首先我们要知道怎么查看这个属性的。...这是因为我们刚建好,还没有数据,所以这个属性还没开始被赋值。...此时我们可以找到AUTO_INCREMENT这个属性,并且它的等于4,这个是不是就是说明AUTO_INCREMENT记录的表示对于下一条记录的id。...可以发现的信息并没有因为表里的信息被删除而改变,这样的话,我们要是想让添加的数据id从2开始不就会不行了吗? but,我们可以修改的信息。

2.7K10

MySQL列属性之增长

歌曲为:《路》-藤竹京 增长 增长:当对应的字段不给(NULL)或者给默认时,该字段会自动的被系统触发,系统会从当前字段中已有的最大再进行+1操作,得到一个新的在不同的字段。...增长通常是跟主键搭配。 新增增长 任何一个字段要做增长必须前提是本身是一个索引(key一栏有)。 增长字段必须是数字(整型) 一张最多只能有一个增长,和主键一起搭配。...如上图运行结果可知: 1.增长起始为1,且每次加1。 2.增长如果对应的字段输入了,那么增长失效,但是下一次还是能够正确的增长,即加1。...修改自增长 增长如果是涉及到字段改变,则必须先删除增长,后增加,因为一张有且只能有一个增长。 修改当前增长已经存在的:修改只能比当前已有的增长的最大大,不能小,否则不会生效。...可以修改变量实现不同的效果:修改是针对整个数据修改,而不是单张(修改是会话级) 语句形式:set auto_increment_increment=5; — 一次修改5 删除增长 增长字段的一个属性

4.6K20

MySQL 对已存在数据添加增 ID 字段

系统环境:Ubuntu 数据库:MySQL5.7 主要是遗留问题,该本来只是用于分析,同事没有添加增id,造成后续在处理时,遇到一些问题,权衡之后,决定对表新增一个增的id字段中已经存在大量数据...其他字段省略 ) from 库命.名 where 1=1 -- limit 200 into outfile '/var/lib/mysql-files/all_202106.txt' fields...其他字段省略 ); 将修改好的数据直接再导入到新建的数据库(新增ID字段,设置ID增),同时注意导入时设置字符编码格式为UTF8mb4,防止出现中文乱码的情况。...至此,对已存在数据库添加增ID操作完成。导出,添加行首空字符,再导入MySQL一共花费3个小时左右时间,基本都花费在导出和导入。...可以调整secure-file-priv参数的,具体请自行百度解决。

3.5K10

MySQL修改字段

MySQL修改字段 MySQL 修改表字段的方法有两种: ALTER TABLE MODIFY COLUMN。...其语法如下: ALTER TABLE 名 MODIFY COLUMN 字段字段类型; 其中,名 表示要修改的名,字段名 表示要修改的字段名,字段类型 表示修改后的字段类型。...(50); 2、MODIFY COLUMN 方法 MODIFY COLUMN 方法用于修改表字段的数据类型、默认、是否为空等属性。...其语法如下: ALTER TABLE 名 MODIFY COLUMN 字段字段类型 [属性]; 其中,名 表示要修改的名,字段名 表示要修改的字段名,字段类型 表示修改后的字段类型,属性 表示修改后的字段属性...例如,将 users 中的字段 age 的数据类型修改为 INT,并设置默认为 0,可以使用以下 SQL 语句: ALTER TABLE users MODIFY COLUMN age INT DEFAULT

5.3K10

MySQL增长属性中的锁

01 MySQL增长属性中的锁 我们在设计结构的时候,经常会对某一列设置增长,它的作用是可以帮助我们自动递增某一列的增长的属性经常被设置在主键列上,原因是主键必须具有唯一性,而自动增长可以避免重复...关于增长的属性,这里我多唠叨一句,试想一个这个场景,如果一个的主键现在已经增长到8了,也就是id=8,此时我们删除这条记录,那么再次插入的时候,这个会是几???...在innodb存储引擎中,针对每个增长字段都有一个增长的计数器,在对还有增长列的进行插入操作的时候,这个计数器会被初始化,在mysql中,我们可以执行下面的语句来得到这个计数器的当前: select...max(增长列) from table; 当我们进行插入操作的时候,该操作会根据这个增长的计数器的+1赋予增长的列,这个操作我们称之为auto-inc Locking,也就是增长锁,...MySQL5.1.22版本对这种锁进行了升级,提出了一个参数innodb_autoinc_lock_mode的参数来控制增长的模式,这个参数默认是1,总共可以设置三个0,1,2 mysql--dba_admin

2.4K30

GORM 读取别名字段(非结构字段的方法

问题是查询结果中包含了中不存在的一个别名字段,如何将这个非结构字段的查询结果通过 GORM 读取到对应的模型结构体中?...方案一 意思是说,如果没有使用 GORM 的自动迁移,可以把结构体中 MoreInfo 字段的 gorm 标签改成 ->,告诉 GORM 这是一个只读字段,就能够把查询结果中的字段读取到模型结构体中。...然后原结构体只保留结构中存在的字段,将原结构体嵌入到扩展结构体,再将结构中不存在的别名字段添加到扩展信息结构体中,gorm 标签还是设置成只读权限。...这样在使用 GORM 时,将 Model 设置成原结构体 &Test{},查询结果接收器设置为扩展信息结构体 &TestExt{},就可以完美解决啦,即不影响原结构体的自动迁移,也可以正常读取到别名字段...(非结构字段的方法 链接: https://zixizixi.cn/golang-gorm-reads-value-of-the-alias-field 来源: iTanken 本作品采用知识共享署名

3.6K10

Mysql千万级大添加字段

MySQL数据添加新字段 有时候我们在测试环境给一个添加字段,但是在线上环境添加一个字段,却极其的慢。...执行加字段操作就会锁,这个过程可能需要很长时间甚至导致服务崩溃。...,导致新数据流失不完整 总结 生产环境MySQL添加或修改字段主要通过如下四种方式进行,实际使用中还有很多注意事项 直接添加 如果该读写不频繁,数据量较小(通常1G以内或百万以内),直接添加即可(可以了解一下...online ddl的知识) 使用pt_osc添加 如果较大 但是读写不是太大,且想尽量不影响原的读写,可以用percona tools进行添加,相当于新建一张添加了字段的新,再将原的数据复制到新中...,切换后再将其他几个节点上添加字段 将现有MySQL版本5.7升级到8.0.12之后的版本 相关文章 Mysql事务 Mysql中的索引 Mysql通过binlog恢复数据

10.1K30

基于MySQL增ID字段增量扫描研究

问题 对于MySQL,如果增ID不是主键时,是否可以用来做增量查询? 2. ...背景 需要按照自增ID字段进行增量查询,有些增ID是主键,而有些增只是普通索引,有些采用MyISAM,有些采用InnoDB。...研究基于的MySQL(注:5.6.7之前最大分区数限制为1024,从5.6.7开始调整为8192,另外5.6版本分区不支持HANDLER): MySQL [test]> select version...如果LIMIT的达到或超过的总记录数,则查询直接扫描数据文件,因此如果不指定“ORDER BY f_id”,则返回结果和插入顺序一致。...但如果LIMIT的小于的总记录数,则和InnoDB一样扫描索引,因此可以不指定“ORDER BY f_id”。

11.4K20
领券