美文网首页
mysql 批量插入 获取所有自增ID

mysql 批量插入 获取所有自增ID

作者: 段义纬 | 来源:发表于2020-08-06 10:03 被阅读0次

    1、没谷歌到php可以用的直接方法,不过可以获取批量插入的第一个自增id

    2、假设批量插入的数据的自增ID是连续的,则可以通过第一个自增ID获取所有自增ID

    3、测试批量插入的数据的自增ID是否是连续的,即插入过程中,单独插入其他数据,批量插入的自增ID是否连续

    4、生成批量插入10w条数据的sql

    $s=<<<SQL
    INSERT INTO `XXXX` (
        `test_id`,
        `operate_id`,
        `create_time`
    )
    VALUES
    %s;
    SQL;
    $a=array();
    for ($i=0;$i<100000;$i++){
        $a[]="('".rand(10000000,99999999)."', 'system', NOW())";
    }
    print_r(sprintf($s,implode(',',$a)));
    exit(1);
    

    5、navicat打开两个页面,一个是上面的sql,一个是一条单独插入的sql(这条sql的test_id,要大于上面sql里随机数的最大值,方便查看)

    先点击执行上面的sql(应该会执行20多秒吧),中间随机点击单条sql
    筛选单条sql中的test_id,可以发现开始几条都是小于批量的自增ID的,在批量执行快结束的时候,插入的单条sql的自增ID是大于批量的,并没有单条sql的自增ID在批量中间,所以批量插入的自增ID是连续的

    6、所以可以使用2中的方式获取批量插入的所有自增ID

    相关文章

      网友评论

          本文标题:mysql 批量插入 获取所有自增ID

          本文链接:https://www.haomeiwen.com/subject/qjfzrktx.html