数据库
首页 > 数据库> > mysql-LOAD DATA INFILE不会导入CSV数据源中的所有行

mysql-LOAD DATA INFILE不会导入CSV数据源中的所有行

作者:互联网

我正在尝试将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;

我要将数据加载到的表的格式如下:

分隔符$$

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”才能解决此问题.

问候,

戴夫

标签:load-data-infile,csv,sql,mysql,database
来源: https://codeday.me/bug/20191208/2091137.html