列数较多的csv文件导入mysql数据库(过程及问题记录)

本文记录了在尝试将列数较多的CSV文件导入MySQL数据库时遇到的问题和解决过程。主要问题包括Navicat导入时的行大小限制和LOAD DATA INFILE语句的列数限制。尝试了手动更改字段类型、缩减数据和数据转置等方法,最后总结了解决此类问题的思路:关注报错信息、检查软件操作和原始数据格式。2022年的更新提出了解决方案,即改变原始数据的组织方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚接触mysql,想把几个表导入到数据库中,结果就遇到了问题。

原始数据是这样的:

1、使用navicat报错:

[ERR] Cannot create table[china_sites_20140516]: 1118 - Row size too large. The maximum row size for theused table type, not counting BLOBs, is 65535. This includes storage overhead,check the manual. You have to change some columns to TEXT or BLOBs

 

按照这个报错的解决方法是:在这一步手动一个个将type改为text或blob,但表格有近千列…

在群里咨询了下,有人给出这样的解决方案:先定义一个游标,读出所有表名,然后用动态sql语句,改变字段类型。但是我还没有试这种方式。

2、使用mysql的load data infile:

先是新建了一个表,由于待导入的表有近千列,也就是有近千个属性字段,我在新建表格时,只新建了一个字段。

然后,用下面语句导入:

LOAD DATA local INFILE "E:\test.csv"

replace INTO TABLE test

CHARACTER SET gbk

FIELDS TERMINATED BY ","

 ENCLOSED BY ""

LINES TERMINATED BY

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值