当前位置:   article > 正文

INSERT INTO SELECT时自增Id不连续_insert into select 自增id

insert into select 自增id

一、表结构

 

二、MySQL提供了批量申请自增id的策略

  1. 语句执行过程中,第一次申请自增id,会分配1个(2的0次方)
  2. 1个用完以后,这个语句第二次申请自增id,会分配2个(2的1次方)
  3. 2个用完以后,还是这个语句,第三次申请自增id,会分配4个(2的2次方)

 

三、举例

例子一:

INSERT INTO user (name, age) SELECT name, age from user01 limit 4;

第一次申请自增id会分配1个,1 < 4

第二次申请自增id会分配2个,1+2 < 4

第三次申请自增id会分配4个,1+2+4 > 4,终止

此时1 + 2 + 4 = 7 > 4,申请自增id的操作就会停止。
因为已经申请了7个id了,所以当我们执行第二条SQL语句时,插入数据的id就会从8开始,此时AUTO_INCREMENT的值也会是8

例子二:

INSERT INTO user (name, age) SELECT name, age from user01 limit 8;

第一次申请自增id会分配1个,1 < 8

第二次申请自增id会分配2个,1+2 < 8

第三次申请自增id会分配4个,1+2+4 < 8

第四次申请自增id会分配4个,1+2+4+8 > 8

此时1 + 2 + 4 +8= 15 > 8,申请自增id的操作就会停止。
因为已经申请了15个id了,所以当我们执行第二条SQL语句时,插入数据的id就会从16开始,此时AUTO_INCREMENT的值也会是16

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/241267
推荐阅读
相关标签
  

闽ICP备14008679号