是否有一种变通办法,允许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/,,/,\\\\N,/g\' $csvfile
done
那应该就地编辑CSV文件,并将空白值替换为replace5 the。更新glob * .csv以符合您的需求。 之所以有两个相同的正则表达式匹配ѭ0,是因为我无法找到另一种方式来使它替换两个连续的空白值。例如。
,,,
。     
        数据文件中的\“ \\ N \”(不带引号)表示将文件导入MySQL时该值应为null。您可以编辑文件以将\“,\\”替换为\“,\\ N,\”吗?     

要回复问题请先登录注册