mysql - 将 csv 文件导入 mysql 服务器,但仅插入第一行并且输入错误
问题描述
目标:我必须将 CSV 文件导入 MySQL 服务器
问题:只插入第一行,并且输入错误。
我的 csv 文件的共振峰是:
lifelock,LifeLock,,web,Tempe,AZ,1-May-07,6850000,USD,b
lifelock,LifeLock,,web,Tempe,AZ,1-Oct-06,6000000,USD,a
lifelock,LifeLock,,web,Tempe,AZ,1-Jan-08,25000000,USD,c
mycityfaces,MyCityFaces,7,web,Scottsdale,AZ,1-Jan-08,50000,USD,seed
flypaper,Flypaper,,web,Phoenix,AZ,1-Feb-08,3000000,USD,a
查询创建sql表:
create table fund(permalink varchar(20), company varchar(20), numEmps int, category varchar(15),
city varchar(20),state varchar(15),fundedDate Date,raisedAmt int, raisedCurrency longtext,round longtext);
查询导入 csv 文件:
load data infile '/var/lib/mysql-files/TechCrunchcontinentalUSA.csv' into table fund fields terminated by ','
lines terminated by '\n' (permalink, company, @numEmps , category , city ,state, @funded, @raised, raisedCurrency ,round )
set numEmps=cast(@emps as unsigned), raisedAmt = cast(@raised as unsigned), fundedDate =STR_TO_DATE(@funded, '%d-%b-%Y') ;
解决方案
你的主键设置为AUTO_INCREMENT
?此外,检查您的 csv 文件是否有每行的换行符分隔符。有时,csv 列数据可能太大而无法放入您定义的 db 列中,例如您正在定义 city 列以保存值,varchar(20)
但在 csv 文件中,您有一个 city 超过 20 个字符的实例。
您始终可以使用此在线工具验证您的 csv(确保您没有任何敏感数据,因为它是第三方工具)
或者,如果您的 csv 文件和表名相同,也可以尝试此操作:
mysqlimport --lines-terminated-by='\n' --fields-terminated-by=',' --fields-enclosed-by='"' --verbose --local db_name TechCrunchcontinentalUSA.csv
-uroot -proot
如果您有一个设置,请提供用户名和密码标志。
推荐阅读
- csv - WINSCP & 批处理脚本;无法根据日期正确拉取
- python - 我需要使用 numpy 的矢量化来优化我的双循环
- python - 为什么二进制搜索算法不起作用?
- java - 在现有 Selenium Java POM 初始化方法中包含 Remote WebDriver 和 Desired Capabilities
- macos - 为什么每次打开终端都会收到此消息?
- sql - 如何从sql中的日期列中获取季度。日期列中的行类似于 23-3-2021
- react-native - 动画状态变化,无需使用插值循环值
- javascript - 如何从 JSON 重新加载自定义 fabricJS 画布对象?
- azure - Azure 专属优惠 ARM 模板失败
- node.js - Socket.io 和 express 消息复制