LOAD DATA INFILE跳过记录

| 我正在尝试将CS​​V文件中的数据加载到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;
任何人都知道为什么会这样吗?似乎只有记录实际上已正确插入。     
已邀请:
用上面提到的失败记录执行查询后。
mysql> load data ....;
执行以下代码
mysql> show warnings; 
它会显示错误,为什么查询失败?并继续进行下一步解决。 我对您的数据做了一个小测试,效果很好:
CREATE TABLE `test2` (
  `id` int(11) NOT NULL,
  `no` varchar(20) NOT NULL,
  `name` varchar(20) NOT NULL,
  `country` varchar(20) NOT NULL,
  `rating` varchar(20) NOT NULL,
  `rate_desc1` varchar(100) NOT NULL,
  `rate_desc2` varchar(100) NOT NULL,
  `no1` int(11) NOT NULL,
  `desc3` varchar(20) NOT NULL,
  `no2` int(11) NOT NULL,
  `desc4` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/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 \“,\” \“
mysql> load data infile \"test.csv\" into table test2 fields terminated by \",\" enclosed by \'\"\' lines terminated by \"\\n\" IGNORE 1 LINES;
结果: 查询正常,受影响的2行(0.05秒) 记录:2已删除:0跳过:0警告:0   结论:因此,我认为区别仅在于列的数据类型n请参见生成的警告     

要回复问题请先登录注册