刚接触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