luoshuang401 2014-01-03 06:18 采纳率: 0%
浏览 2127

sql脚本insert语句过长,导入报错

今天在用mysql导入sql脚本时,报错"MySQL server has gone away",经检测,是“insert...value...”里数据过多导致不能插入。后修改配置文件:

 1.tmp_table_size
 2.max_allowed_packet

仍旧报同样的错。来位大神解决了吧,真揪心。

ps:最好是通过调整mysql配置参数,因为sql不是本人写的。

  • 写回答

1条回答

  • 混分吴老师 2023-04-07 20:12
    关注

    如果 SQL 脚本中的 INSERT 语句过长,导致导入时报错,可以考虑以下几个解决方法:

    1. 分割 INSERT 语句:将一长串的 INSERT 语句拆分成多个小的 INSERT 语句,每个 INSERT 语句只插入一行数据。这样可以避免一次性插入过多数据导致的问题。例如:

      INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);
      INSERT INTO table_name (column1, column2, column3) VALUES (value4, value5, value6);
      INSERT INTO table_name (column1, column2, column3) VALUES (value7, value8, value9);
      
    2. 使用 LOAD DATA 语句:如果数据量较大,可以考虑使用 LOAD DATA 语句将数据从文件中导入。这样不仅可以避免 INSERT 语句过长的问题,还可以提高导入效率。例如:

      LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
      

      这条语句将从指定文件中读取数据,并将其插入到指定的表中。

    3. 压缩 SQL 文件:如果 SQL 文件过大,可以考虑将其压缩为 gzip 或 zip 格式,然后再导入。这样可以减小文件大小,从而避免导入时出现的问题。例如:

      gzip sql_file.sql
      mysql -u username -p dbname < sql_file.sql.gz
      

      这两条命令将先将 SQL 文件压缩为 gzip 格式,然后使用 mysql 命令将其导入到指定数据库中。

    以上是一些常见的解决方法,如果问题仍然存在,可以考虑分批导入数据,或者使用第三方工具进行导入。

    评论

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的