如何解决是否有一种变通办法,允许MySQL中的LOAD DATA INFILE丢失的数据等于NULL?
| 我有很多大型CSV文件,它们的NULL值存储为,
(即,无条目)。使用with1ѭ会使这些NULL值变为零,即使我使用var DOUBLE DEFAULT NULL
这样的字符串创建表。经过大量搜索后,我发现这是一个已知的“错误”,尽管它可能是某些用户的功能。有没有一种方法可以在不进行预处理的情况下即时解决此问题?这些数据都是数字,因此零值与NULL有很大不同。
或者,如果我必须进行预处理,是否有最有前途的处理数十个100mb至1gb的csv文件的方法?谢谢!
解决方法
使用
sed
进行最少的预处理,即可准备好导入数据。
for csvfile in *.csv
do
sed -i -e \'s/^,/\\\\N,/\' -e \'s/,$/,\\\\N/\' -e \'s/,/,\\\\N,/g\' -e \'s/,/g\' $csvfile
done
那应该就地编辑CSV文件,并将空白值替换为replace5 the。更新glob * .csv以符合您的需求。
之所以有两个相同的正则表达式匹配ѭ0,是因为我无法找到另一种方式来使它替换两个连续的空白值。例如。 ,
。
, 数据文件中的\“ \\ N \”(不带引号)表示将文件导入MySQL时该值应为null。您可以编辑文件以将\“,\\”替换为\“,\\ N,\”吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。