用CSV文件中的数据填充MySQL表
有一个包含以下数据的CSV文件:用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,
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”,它解决了问题。