• (转)批量插入sql语句


    为了减少数据库连接的I/O开销,一般会把多条数据插入放在一条SQL语句中一次执行。
    1、INSERT INTO TABLE(col1, col2) VALUES(val11, val12), (val21, val22),(val31,val32) ;
    2、INSERT INTO TABLE(col1, col2) SELECT val11, val12 UNION ALL SELECT val21, val22 union all select val31, val32 ;
    这样的写法是属于复合SQL语句,表示先把两个SELECT的结果集进行无删减的联合,再把联合结果插入到TABLE中。

    批量插入的确是比一条条插入效率高的多

    批量插入如果数据量太大可能出现下面的情况:

    MySQL报错:Packets larger than max_allowed_packet are not allowed

    解决方法:

    在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet are not allowed”。

    这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M)

    可以通过如下语句在数据库中查询其值:

    show VARIABLES like '%max_allowed_packet%';

    修改此参数的方法是在mysql文件夹找到my.ini文件,在my.ini文件[mysqld]中添加一行:

    max_allowed_packet=16777216

    重启MySQL,这样将可以导入不大于16M的数据了,当然这数值可以根据需要作调整。

    dt.columns不能直接循环,循环出来的是带大括号的列名称

  • 相关阅读:
    JS精度问题(0.1+0.2 = 0.3吗?)
    力导向算法的研究与改进
    React Hooks的memo和useCallback
    React Hooks vs Vue Composition Api
    docker常用命令
    win10一台电脑上配置多个git账户
    eslint+prettier 统一代码风格
    c#中关于值类型,引用类型在栈,堆栈的分配
    js里的__proto__和prototype
    golang之冒泡排序
  • 原文地址:https://www.cnblogs.com/heiao10duan/p/9406312.html
Copyright © 2020-2023  润新知