尝试将数据从CSV加载到MySQL表中。但是,我得到了以下错误:
“错误代码: 1262.第1行被截断;包含比输入列更多的数据”
以下是我的SQL:
CREATE DATABASE db;
USE db;
CREATE TABLE covid (
d INT NOT NULL,
mo INT NOT NULL,
yr YEAR NOT NULL,
cases INT NOT NULL,
deaths INT NOT NULL,
country VARCHAR(255) NOT NULL,
country_code VARCHAR(255) NOT NULL,
pop INT NOT NULL,
continent VARCHAR(255) NOT NULL,
rate DECIMAL(10, 5) NOT NULL
);
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/corgis-covid.csv'
INTO TABLE covid
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(d, mo, yr, cases, deaths, country, country_code, pop, continent, rate);
SELECT * FROM covid这是我的CSV数据的一部分:
d,mo,yr,cases,deaths,country,country_code,pop,continent,rate,
5,11,2020,121,6,Afghanistan,AFG,38041757,Asia,3.74588377,
4,11,2020,86,4,Afghanistan,AFG,38041757,Asia,3.78268543,
3,11,2020,95,3,Afghanistan,AFG,38041757,Asia,3.78794281,
2,11,2020,132,5,Afghanistan,AFG,38041757,Asia,3.76691329,
1,11,2020,76,0,Afghanistan,AFG,38041757,Asia,3.57501889,
31,10,2020,157,4,Afghanistan,AFG,38041757,Asia,3.55398937,请帮帮忙。谢谢!
发布于 2022-03-08 04:42:49
率十进制(10,5)不为空
首先,rate值包含小数位右边的8位数字。因此,您需要将列的大小增加到更大的位置,比如DECIMAL(10,8)。
以'\n‘结尾的
行
您可能需要验证行实际上是由\n终止的。因为它经常依赖于o/s。
不管怎么说,正如@Paul .所说的in the comments,额外的后缀逗号导致导入失败。更好的解决方案是修复数据文件中的错误。但是,您也可以尝试更改行结束符,以包括尾随逗号。使用LINES TERMINATED BY ',\r\n'似乎解决了我使用Windows测试中的错误:
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/corgis-covid.csv'
INTO TABLE covid
FIELDS TERMINATED BY ','
LINES TERMINATED BY ',\r\n'
IGNORE 1 ROWS
(d, mo, yr, cases, deaths, country, country_code, pop, continent, rate);https://stackoverflow.com/questions/71389171
复制相似问题