zoukankan      html  css  js  c++  java
  • MySQL--批量插入导致自增跳号问题

    对于批量插入数据的操作,MySQL申请自增的策略为:

    在批量插入语句执行过程中,申请策略:
    1、第一次申请自增值时,会分配1个
    2、在N次申请自增值时,会分配上一次(第N-1次)的2倍。

    测试Demo:

    ## 创建测试表
    CREATE TABLE `tb000` (
      `id` int(11) NOT NULL auto_increment primary key,
      `c1` int(11) DEFAULT NULL,
      `c2` varchar(5) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    
    ## 插入4条数据,分别三次获取自增值:(1),(2,3),(4,5,6,7)
    INSERT INTO tb000(c1,c2) 
    SELECT 1,1 
    FROM information_schema.tables 
    LIMIT 4;
    
    ## 再次插入一条记录,获取自增值(8INSERT INTO tb000(c1,c2)VALUES(2,2);
    
    
    SELECT * FROM tb000;

    ===================================================================

    其他跳号原因:

    1、语句显式插入比当前自增列更大的值

    2、语句执行获取到自增值后所在事务被回滚

  • 相关阅读:
    拆分跨天的时间数据
    模板
    更换数据库服务器迁移步骤
    缺失索引
    flex布局解说和属性
    Vuejs中关于computed、methods、watch,mounted的区别
    皮囊
    回家
    江苏旅游计划
    重写原生alert,弹出层过一会就消失
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10415665.html
Copyright © 2011-2022 走看看