我正在尝试将 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;
我正在加载数据的表格格式如下:
分隔符 $$
CREATE TABLE `hospital_quality_scores` (
`ProviderNumber` varchar(8) NOT NULL,
`HospitalName` varchar(50) DEFAULT NULL,
`State` varchar(2) DEFAULT NULL,
`MeasureCode` varchar(25) NOT NULL,
`Question` longtext,
`AnswerDescription` longtext,
`AnswerPercent` int(11) DEFAULT NULL,
`NumberofCompletedSurveys` varchar(50) DEFAULT NULL,
`SurveyResponseRatePercent` varchar(50) DEFAULT NULL,
`Footnote` longtext,
PRIMARY KEY (`ProviderNumber`,`MeasureCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$
有人知道为什么会这样吗?似乎只有一部分记录被正确插入。
最佳答案
会不会是您的主键阻止了插入额外数据?
查找已插入的 ProviderNumber 为“'050441'”且 MeasureCode 为“H_HSP_RATING_7_8”的记录,如果您有其中之一,那么这是重复键问题。
您可能需要将“AnswerDescription”添加到主键以解决此问题。
问候,
戴夫
关于mysql - LOAD DATA INFILE 不导入 CSV 数据源中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053764/