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

MySQL重大Bug!自增主键竟然不是连续递增

很多低级开发工程师都想当然觉得自增主键是严格连续递增,但事实真的如此吗?...此后再成功插入新数据,拿到自增id就是3了 如你所见,自增主键连续了!所以唯一键冲突是导致自增主键id连续一大原因。 事务回滚是二大原因。...所以自增id只保证是递增,但不保证是连续! 自增锁养成计划 所以自增id锁并非事务锁,而是每次申请完就马上释放,其它事务可以再申请。其实,在MySQL 5.1版本之前,并不是这样。...因为原库session2insert语句,生成id连续。这个连续id,用statement格式binlog来串行执行,是执行不出来。...之后,再执行 insert into t2 values(null, 5,5) 实际上插入数据是(8,5,5)。这是主键自增id连续三大原因。

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

MySQL重大Bug!自增主键竟然不是连续递增

很多低级开发工程师都想当然觉得自增主键是严格连续递增,但事实真的如此吗?...此后再成功插入新数据,拿到自增id就是3了 如你所见,自增主键连续了!所以唯一键冲突是导致自增主键id连续一大原因。 事务回滚是二大原因。...所以InnoDB放弃这样设计,语句即使执行失败了,也不回退自增id! 所以自增id只保证是递增,但不保证是连续!...因为原库session2insert语句,生成id连续。这个连续id,用statement格式binlog来串行执行,是执行不出来。...之后,再执行 insert into t2 values(null, 5,5) 实际上插入数据是(8,5,5)。这是主键自增id连续三大原因。

2.6K00

Excel小技巧:快速输入连续序号

有时候,我们需要在一系列单元格中输入连续序号,例如,在单元格区域A1:A10中分别输入数字1至10。我们可以依次在单元格中输入1、2、3、4、……、10,这没问题,毕竟要操作单元格只有10个。...我们也可以先在单元格A1输入1,在单元格A2中输入2,然后选中这两个单元格,拖动右下角手柄直至单元格A10,如下图1所示。 图1 这样操作都没有什么问题,涉及数据量少都好说。...然而,如果要在连接单元格区域中输入10000个连续数字呢?还是按照上面的操作恐怕就不太方便了。 这里介绍了一个简单快捷方法。...例如,如果要在单元格区域B3:B10002中输入从1至10000连续数字作为序号。 首先,在单元格B3中输入数字1。...然后,选择单元格B3,按Ctrl+Shift+向下方向箭头选中从B3开始直至该列末尾所有单元格。 接着,单击功能区“开始”选项卡“编辑”组中“填充——序列”命令。

75520

如何查找递增连续数组中缺失数字

在一个长度为n递增数组中,数组中元素范围是0 ~ n-1,如何在这个递增连续数组中查找缺失数字? 分析下: 1. 排序数组中搜索算法,首先想到就是二分法查找 2....丢失数字之前左子数组:nums[m] = m, 需要找到第一个nums[m] > m数组索引值即可....r = m-1; 这里多解释下,即使m-1这个位置是相同, 也会被后续左指针r=m+1情况下处理掉,此处不好理解,需多多体会....在处理边界值时候,在(i == r)时候,还多需要多遍历一次,向右移动左指针一次. 4. 这时,左指针值便是最后想要值. 所以我们遍历条件为(l<=r),最后左指针位置即为缺失结果值....综上,对于有序数组查找,一般都会使用二分法查找.在查找数据时候,注意左右边界指针移动.以及遍历标记(l<=j)即可.

3.1K21

js生成年月+字母+五位数编码,实现字母递增与五位数序号递增

这里写目录标题 需求: 如图所示: 实现: 字母递增序号递增: 核心代码: pass:给后人留个坑吧: 需求: 1、新增数据要求生成编码格式为YYYYMMA00001。...例如:202209A00001 2、序号 00001递增,当序号大于99999时,字母A递增。例如:A99999 时递增为B00001 如图所示: 实现: 年月就不说了。获取一下补个零就行了。...判断一下,当序号大于99999时,index+1,在给end从1开始计数(end为序号) // 满99999 字母递增 序号重置为1 let index = 0;...也就是说AB两个字母都可以算满,99999x2 大概20w数据,嗯,短时间内肯定是发现不了,本来想用取余算。算了,早就不想干了,20w数据,不得添加好几年??我早就走了,给后人留个坑吧,奈斯!!...把字母递增序号递增单独拧出来还是可以用。。。

86120

获取连续数字中缺数字

且将断号号码找出来。 需求分析 凭证短号规则,也就是这个凭证是通过怎么一个规则来判断短号。最后和产品了解每个公司都有自己规则。不一定是纯数字,也有可能标记有横杠特殊字符等。...砍需求,由于我们在年底进行开发版本是POC版本,并且时间非常紧急(以至于我们每天都要搞到11点)。所以说不用很复杂业务需求,所以最后讨论下来先做为写死纯数字校验。 所以有了今天这篇文章。...CODOING 其实有很多同学看到这个一串数字断号校验,这有什么可讲呢?简单一批。 刚开始思路:这些数字有可能从零开始,也有可能从一开始,也有可能从。也有可能中间有很多断号等等。。。。...那就先拿出第一个短号数据试试。...于是我大概看了下,看到他搞了两个差了好几亿凭证号执行了操作。

2K30

自增主键连续几种情况

//自增主键连续几种情况// 最近在极客时间上学习丁奇大佬MySQL 45讲》,这里结合自己理解分享出来,喜欢同学可以购买原版课程进行学习,里面的内容很丰富。...有的时候,我们会发现自增值 01 唯一键冲突导致自增键修改 当我们给表里面插入数据时候,如果没有指定主键值,自增长属性会自动为我们定义主键值,如下示例: mysql> CREATE TABLE...02 事务回滚导致自增键连续 当我们使用回滚事务时候,如果该事务内部使用了自增值,那么同样会导致表自增主键出问题,示例如下: mysql> insert into t values (null...03 MySQL自增锁优化带来连续MySQL5.7中,参数innodb_autoinc_lock_mode被用来控制自增锁模式,该参数可以设置为三个值:0、1、2. a、当该值为0时候,...为了避免自增id连续而造成主从数据不一致,线上环境,建议设置成innodb_autoinc_lock_mode=2 ,并且 binlog_format=row.这样做,既能提升并发性,又不会出现数据一致性问题

3.3K30

一个简单问题:什么是连续网络和连续网络?

大家是否听过连续网络和连续网络,今天给大家普及一下。 什么是连续网络和连续网络? 连续网络 有类网络每对子网之间传输数据包只通过同类型网络子网,不通过其他类型网络子网。...连续网络 这种网络至少一对子网之间传输数据包必须经过不同类型网络子网。...连续网络和连续网络是 RIP 协议中概念,RIPv1s 是有类路由协议,总是根据 IP 地址类别(如 A 类、B 类、C 类等)汇总路由。...为了更好地理解连续网络和连续网络,我们先来了解一下IP地址分类。 IP地址分为5类,即A、B、C、D和E。...192.168.1.0/24 将 10.1.0.0/24 和 10.1.1.0/24 分开,PC1和PC2之间通信,数据包必须经过192.168.1.0/24C类子网。这样网络称为连续网络。

69950

如何解决WordPress文章ID连续方法

由于 WordPress 自身机制问题,导致我们在固定链接中使用了文章ID,那么就会导致文章ID连续,虽说文章ID连续倒也没什么,但有强迫的人总感觉比较别扭。...为了解决这个问题,阿夜也是亲自尝试了网上很多教程,最后总结一些有用东西,于是有了这篇文章,希望能为大家解决 WordPress 文章ID连续问题带来帮助。...WordPress 文章ID连续原因 文章自动保存草稿。在我们新建文章时,wordpress会新建一个自动保存草稿,以保护准备发布文档丢失,但每次保存都会占用ID; 文章修订版本保存。...附件类似于我们文章,每一个附件会占用一个文章ID。 WordPress 文章ID连续方法 俗话说好,解铃还须系铃人,对症下药才是关键。...结语: 以上就是解决 WordPress 文章ID连续方法,其实文章多了之后阿夜对文章ID连续其实也没那么在乎了,至少自动保存草稿这个功能阿夜还是比较认可了,有时候自动保存挺有用,建议是不要禁用吧

1.3K10

Excel技巧:如何给连续产品进行批量编号?

场景:企业市场、财务、人事、物流部等Excel数据量较大办公人士。 问题:如何给连续产品进行批量编号? 解答:利用删除重复项和Vlookup函数组合搞定。...要求让其对应产品编号填充置C列。 首先复制上图D4:D21产品区域到其他区域,比如本例D31:D38区域。然后点击“数据—删除重复项“按钮。下图 1 处。...在删除重复项后唯一产品后面写上对应编号数值。也就是将下图D31:E34 作为一个基准表。下图 3 处。 接下来利用强大Vlookup函数来将基准表数字匹配到前面的产品编号中即可。...在C4输入Vlookup公式 =VLOOKUP(D4,G8:H11,2,0)(Vlookup函数具体用法可以参看这里,点击跳转。) 最后一步,将编号复制黏贴成为数值即可。下图 5 处。...如果最后排序就可以实现学学同学问题要求。 总结:Excel很多问题都需要组合进行解决,这个就需要对Excel有个体系认识,删除重复项+Vlookup或Lookup就是一个很好组合。

1.2K10

MySQL数据库如何生成分组排序序号

经常进行数据分析小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。...而MySQL5.7中由于没有这类函数,该如何实现呢,下面对比MySQL8.0,列举两种情况实现。 1....生成序号 2.1 使用窗口函数ROW_NUMBER()实现 在MySQL8.0中可以直接使用窗口函数ROW_NUMBER()来实现序号生成,例如 # 根据c_name字段进行排序生成序号 SELECT...中实现 因为在MySQL8.0版本之前无ROW_NUMBER()窗口函数,因此需要结束变量来实现。...| +----+----------+-----------+---------+-------+ 10 rows in set, 2 warnings (0.00 sec) 这样就实现了分组及排序序号生成

28210

Excel公式练习78: 判断并标识连续编码(续)

学习Excel技术,关注微信公众号: excelperfect 本次练习是:与《Excel公式练习77:判断并标识连续编码》相似,编码都是4个字符,由1个字母接着3个数字组成,但增加了字母没有按顺序情形...,如下图1所示,存在字母后面的数字连续,也存在字母连续。...图1 要求使用公式标识出连续编码。 先不看答案,自已动手试一试。 解决方案 由于字母和数字个数都是固定,虽然存在字母连续情形,但公式还是比较容易编写。...公式使用了嵌套IF函数来判断不同情形。对于字母相同时,比较后面的数字是否连续;否则,比较字母编码是否连续。 小结: 1.MID函数返回文本,与数字相加,强制将文本转换为数字。...2.CODE函数返回参数首字符对应字符编码。 3.注意体会嵌套IF函数来递进判断。 注:本次练习整理自exceljet.net。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

57520
领券