LOAD DATA INFILE跳过记录
|
我正在尝试将CSV文件中的数据加载到MySQL数据库中,并注意到导入该文件时似乎跳过了许多记录。
数据来自政府来源,在不寻常的地方用单引号等格式很奇怪。这是未插入记录的示例:
\"\'050441\'\",\"STANFORD HOSPITAL\",\"CA\",\"H_HSP_RATING_7_8\",\"How do patients rate the hospital overall?\",\"Patients who gave a rating of\'7\' or \'8\' (medium)\",\"22\",\"300 or more\",\"37\",\"\"
但是,此记录会插入:
\"\'050441\'\",\"STANFORD HOSPITAL\",\"CA\",\"H_HSP_RATING_0_6\",\"How do patients rate the hospital overall?\",\"Patients who gave a rating of \'6\' or lower (low)\",\"8\",\"300 or more\",\"37\",\"\"
我用来加载数据的SQL在这里:
mysql> load data infile \"c:\\\\HQI_HOSP_HCAHPS_MSR.csv\" into table hospital_qualit
y_scores fields terminated by \",\" enclosed by \'\"\' lines terminated by \"\\n\" IGNOR
E 1 LINES;
任何人都知道为什么会这样吗?似乎只有记录实际上已正确插入。
没有找到相关结果
已邀请:
1 个回复
曝匿弄罚
执行以下代码
它会显示错误,为什么查询失败?并继续进行下一步解决。 我对您的数据做了一个小测试,效果很好:
/var/lib/mysql/test/test.csv包含两个有效的非工作记录: 1,\“ \'050441 \'\”,\“ STANFORD HOSPITAL \”,\“ CA \”,\“ H_HSP_RATING_7_8 \”,\“患者对医院的整体评价如何?”评级为“ 7”或“ 8”(中)\“,\” 22 \“,\” 300或更高\“,\” 37 \“,\” \“ 2,\“ \'050441 \'\”,\“ STANFORD HOSPITAL \”,\“ CA \”,\“ H_HSP_RATING_0_6 \”,\“患者对医院的整体评价如何?”评级为''6 \'或更低(低)\“,\” 8 \“,\” 300或更高\“,\” 37 \“,\” \“
结果: 查询正常,受影响的2行(0.05秒) 记录:2已删除:0跳过:0警告:0 结论:因此,我认为区别仅在于列的数据类型n请参见生成的警告