用CSV文件中的数据填充MySQL表

用CSV文件中的数据填充MySQL表,mysql,csv,fill,Mysql,Csv,Fill,有一个包含以下数据的CSV文件: 1;8-25-2010;0:05;210;4 2;8-25-2010;2:45;412;5 3;8-25-2010;3:40;300;3 4;8-25-2010;4:45;226;6 5;8-25-2010;5:20;206;4 6;8-25-2010;5:25;216;3 还有一个MySQL表: CREATE TABLE IF NOT EXISTS `Schedule` ( `ID` SMALLINT NOT NULL AUTO_INCREMENT,

有一个包含以下数据的CSV文件:

1;8-25-2010;0:05;210;4
2;8-25-2010;2:45;412;5
3;8-25-2010;3:40;300;3
4;8-25-2010;4:45;226;6
5;8-25-2010;5:20;206;4
6;8-25-2010;5:25;216;3
还有一个MySQL表:

CREATE TABLE IF NOT EXISTS `Schedule` (
  `ID` SMALLINT NOT NULL AUTO_INCREMENT,
  `Num` INT(10),
  `PlannedDate` DATE,
  `PlannedTime` TIME NOT NULL,
  `resQty` INT(3) NOT NULL,
  `stID` VARCHAR(10) NOT NULL,
  PRIMARY KEY (`ID`),
  FOREIGN KEY `stID` (`stID`) REFERENCES Stands (`stID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
现在我需要用CSV文件中的数据填充这个表。为此,我使用以下代码:

TRUNCATE TABLE testDB.Schedule;
LOAD DATA LOCAL INFILE 'C:\\temp\\Input.csv'
INTO TABLE testDB.Schedule FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n' (Num,PlannedDate,PlannedTime,stID,resQty);
但是错误消息说,“第1行PlannedDate列的数据被截断”,ErrorNr。1265所有行都显示相同的错误消息。

在此行中:

(Num,PlannedDate,PlannedTime,stID,resQty);
最后两个参数是反向的:
stID,resQty

应该是:

resQty, stID
这就是为什么会出现截断错误。

在这一行中:

(Num,PlannedDate,PlannedTime,stID,resQty);
最后两个参数是反向的:
stID,resQty

应该是:

resQty, stID

这就是为什么会出现截断错误。

日期的格式不正确,应该是2012-01-19

日期的格式不正确,应该是2012-01-19

如果您一直使用该日期格式(这不是MySQL默认格式),可以将这些日期加载到临时变量中,然后将其转换为日期,如下所示:

TRUNCATE TABLE testDB.Schedule;
LOAD DATA LOCAL INFILE 'C:\\temp\\Input.csv'
INTO TABLE testDB.Schedule FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n' 
(Num,@PlannedDate,PlannedTime,stID,resQty)
SET PlannedDate = STR_TO_DATE(@PlannedDate,'%m-%d-%Y');

如果您坚持使用该日期格式(这不是MySQL默认值),可以将这些日期加载到临时变量中,然后将其转换为日期,如下所示:

TRUNCATE TABLE testDB.Schedule;
LOAD DATA LOCAL INFILE 'C:\\temp\\Input.csv'
INTO TABLE testDB.Schedule FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n' 
(Num,@PlannedDate,PlannedTime,stID,resQty)
SET PlannedDate = STR_TO_DATE(@PlannedDate,'%m-%d-%Y');

我不这么认为,因为在CSV文件中我有stdID->resQty。很抱歉没有提到这一点。我不这么认为,因为在CSV文件中我有stdID->resQty。很抱歉没有提到这一点。我尝试将日期格式更改为“2012-01-19”,它解决了问题。我尝试将日期格式更改为“2012-01-19”,它解决了问题。