Mysql 加载带有未知系统变量错误的数据填充
我一直在尝试使用load data infile过程将csv文件中的数据加载到mysql,但由于set语句中存在未知变量错误,我甚至无法对其进行处理Mysql 加载带有未知系统变量错误的数据填充,mysql,csv,import,load-data-infile,date-conversion,Mysql,Csv,Import,Load Data Infile,Date Conversion,我一直在尝试使用load data infile过程将csv文件中的数据加载到mysql,但由于set语句中存在未知变量错误,我甚至无法对其进行处理 LOAD DATA LOCAL INFILE 'D:\\Bets\\BD\\tables\\match.csv' INTO TABLE `bets`.`match` FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\
LOAD DATA LOCAL INFILE 'D:\\Bets\\BD\\tables\\match.csv'
INTO TABLE `bets`.`match`
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
(`idMatch`, `idChampionship`, @date, `homeTeam`, `awayTeam`, `homeTeamGoals`, `awayTeamGoals`, `matchType` );
SET matchDate = STR_TO_DATE(@date, 'YYYY-MM-DD')
要导入的日期字段的格式为2011-08-07
运行查询时,给出的错误是:SQL错误(1193):未知系统变量“matchDate”
任何帮助都将是宝贵的。。。谢谢 当
设置匹配日期时
应该是这样的:
SET matchDate = STR_TO_DATE(@date, '%Y-%m-%d');
而不是将matchDate=STR_设置为_DATE(@DATE,'yyyyy-mm-dd')代码>
MySQLSTR_TO_DATE函数的示例您可以阅读。我偶然发现了相同的问题。设置线必须是加载数据填充的一部分。。。陈述在代码中,列表达式以分号结尾,分号在加载数据填充完成后执行SET命令。语句完成后,语句中创建的用户变量不再存在。正确的说法如下:
LOAD DATA LOCAL INFILE 'D:\\Bets\\BD\\tables\\match.csv'
INTO TABLE `bets`.`match`
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
(`idMatch`, `idChampionship`, @date, `homeTeam`,
`awayTeam`,`homeTeamGoals`, `awayTeamGoals`, `matchType`)
SET matchDate = STR_TO_DATE(@date, 'YYYY-MM-DD');
但是,为什么我需要在列名之前使用@?!在mysql文档中从来没有提到过这一点。阅读“用户变量”而不是“系统变量”如果您仔细阅读mysql加载数据填充文档,文档中提到了这一点。这个链接就在那里