以前就有过这样的疑问,最近在学习MySQL这一块,突然又想到了这个问题,就自己动手实验了一下,请看过程。先创建一张简单的表,插入一条数据create table test(id int unsigned auto_increment primary key); insert into test values(null);查看一下表情况,show create table test我们发现 AUTO            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-02 07:46:59
                            
                                50阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            2.1 主键自增ID用完当主键自增 ID 达到上限后,再新增下一条数据时,它的 ID 不会变(还是最大的值),只是此时再添加数据时,因为主键约束的原因,ID 是不允许重复的,所以就会报错提示主键冲突。我们可以使用以下 SQL 来测试:CREATE TABLE t (
    id INT AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(128)
) a            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-05 09:15:04
                            
                                17阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MySQL 的自增 ID(Auto Increment ID)是数据库表中最常用的主键类型之一。然而,在一些特定的场景下,例如当表中的数据量非常大或者应用场景特殊时,自增 ID 可能会达到其最大值。默认情况下,MySQL 的自增 ID 是一个 BIGINT 类型,这种类型的最大值是 2^63 - 1,即 9223372036854775807,远远超过实际应用中可能达到的数量级            
                
         
            
            
            
             一、简述 在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值。一般情况下初始值都是从 0 开始,然后按照一定的步长增加。在 MySQL 中只要定义了这个数的字节长度,那么就会有上限。 二、试验数据表定义的自增 ID,如果达到上限之后。再申请下一个 ID 的时候,获得到的值将保持不变。我们可以通过下面这个例子来验证一下:create table            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-07 22:23:46
                            
                                177阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            业务背景事情的起因是这样的…几个月前做过一个统计类型的job,上线之后小修小补了几次一直运行的很平稳,就是有一个缺点:慢。起初我一直以为是因为数据量过大导致的,每天早上六点准时开跑,一般要到下午一两点才能跑完,其实现在想想这么长时间的运行肯定是不合理的,而且本身业务的数据量也没有大到那个地步,但是由于一直工作太忙了(懒),再加上本身不算特别重要的模块就没有过多在意,但是由于我们的job只有一个节点            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-27 22:36:17
                            
                                21阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            既然这块知识点不清楚,那回头就自己动手实践下。首先,创建一个最简单的表,只包含一个自增id,并插入一条数据:———————
create table t0(id int unsigned auto_increment primary key) ;
insert into t0 values(null);
————————————————▲通过show命令show create table t0;查            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-21 23:42:45
                            
                                75阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这篇文章主要介绍了MySQL的自增ID(主键) 用完了的解决方法,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值。一般情况下初始值都是从 0 开始,然后按照一定的步长增加(一般是自增 1)。一般情况下,我们都是用int(11)来作为数据表的自增 ID,在 MySQL 中只要定义了这个数的字节长度,那么就会有上            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-21 23:46:24
                            
                                65阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            如果你用过或了解过MySQL,那你一定知道自增主键了。每个自增Id都是定义了初始值,然后按照指定步长增长(默认步长是1)。虽然,自然数是没有上限的,但是我们在设计表结构的时候,通常都会指定字段长度,那么,这时候id就有上限了。既然有上限,就会有被用完的时候,下面总结了几种解决方案。自增Id说到自增id,相信你的第一反应一定是在设计表结构的时候自定义一个自增id字段,那么就有一个问题啦,在插入数据时            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-13 00:07:23
                            
                                43阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            数据库主键id自增的方法,列举了几种如下一、数据库自增(部分数据库支持) 创建表的时候设置id自增即可,或者后期修改表id自增# mysql 语法
create table your_table_name(
    id bigint(20)  not null auto_increment primary key comment '主键', // auto_increment 表示自增(固定死i            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-17 09:52:52
                            
                                593阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            因此在实际中,你根本等不到自增主键用完到情形!前言在面试中,大家应该经历过如下场景:面试官:"用过mysql吧,你们是用自增主键还是UUID?" 你:"用的是自增主键" 面试官:"为什么是自增主键?" 你:"因为采用自增主键,数据在物理结构上是顺序存储,性能最好,blabla…" 面试官:"那自增主键达到最大值了,用完了怎么办?" 你:"what,没复...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-06 15:02:57
                            
                                163阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            点击上方,选择“置顶公众号”优质文章,第一时间送达作者孤独烟,国内知名博主。中国平安研发工程师,目前负责云平台架构设计以及需求研发工作。毕业后一直从事Java开发工作,在...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-16 13:47:28
                            
                                167阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            因此在实际中,你根本等不到自增主键用完到情形!前言在面试中,大家应该经历过如下场景:面试官:"用过mysql吧,你们是用自增主键还是UUID?" 你:"用的是自增主键" 面试官:"为什么是自增主键?" 你:"因为采用自增主键,数据在物理结构上是顺序存储,性能最好,blabla…" 面试官:"那自增主键达到最大值了,用完了怎么办?" 你:"what,没复...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-03-02 14:53:34
                            
                                237阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MySQL里有很多自增的id,每个自增id都是定义了初始值,然后不停地往上加步长。虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限。比如,无符号整型(unsigned int)是4个字节,上限就是232-1。 既然自增id有上限,就有可能被用完。但是,自增id用完 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-11 11:53:00
                            
                                131阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            最后 Java基础部分算法与编程数据库部分流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba) 可以发现 AUTO_INCREMENT 已经自动变成 2,这离用完还有很远,我们可以算下最大当前声明的自增 ID 最大是多少,由于这里定义的是 intunsigned,所以最大可以达到 2 的 32 幂次方 - 1 = 4294967295            
                
         
            
            
            
            MySQL的自增ID用完了,怎么办?            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-12-03 00:22:15
                            
                                90阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            自增id InnoDB系统自增row_id Xid Innodb trx_id thread_id Redis自增主键 总结 1、 表的自增 id 达到上限后,再申请时它的值就不会改变,进而导致继续插入数据时报主键冲突的错误2、 row_id 达到上限后,则会归 0 再重新递增,如果出现相同的 ro ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-04 14:53:00
                            
                                121阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            这个问题其实可以分为有主键 & 无主键两种情况回答。国际惯例,先上张脑图:02 有主键 如果你的表有主键,并且把主键设置为自增。在 MySQL 中,一般会把主键设置成 int 型。而 MySQL 中 int 型占用 4 个字节,作为有符号位的话范围就是 [-231,231-1],也就是[-2147483648,2147483647];无符号位的话最大值就是 2^32-1,也就是 42949            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-02-20 23:24:33
                            
                                570阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            MySQL 的自增ID用完了,怎么办?为何有此一问?回家后潜心钻研,拿捏。实践出真知1. 首先,创建一个最简单的表,只包含一个自增id,并插入一条数据。2. 查看table1表情况3. 4294967295,如此大的数字,啥时候能用完,嘿嘿,这难不倒我,小技巧:可以在创建表的时候,直接声明AUTO_INCREMENT的初始值。4. 同样查看table2表情况5. 我们来再插入一条数据看看,到底会            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-30 15:29:17
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            mysql 的自增 id 的实现逻辑是什么样子的?Key TakeAwaysInnoDB 引擎中 有三种 AutoIncrement 锁模式:innodb_autoinc_lock_mode=0(traditional lock mode):获取表锁,语句执行结束后释放innodb_autoinc_lock_mode=1(consecutive lock mode,MySQL 8.0 之            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-08 13:14:21
                            
                                94阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            四种方法1. select max(id) from tablename2.SELECT LAST_INSERT_ID()LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connect            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-01-18 18:13:32
                            
                                930阅读