我创建了一个带有查询的表:
CREATE TABLE Department (
EmpID INT NOT NULL,
Designation VARCHAR(80) NOT NULL,
Department VARCHAR(80) NOT NULL,
PRIMARY KEY(EmpID));
SELECT * FROM Department;
我通过查询输入数据:
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Department.csv'
INTO TABLE Department
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
但是输出中出现一条消息:
Error Code: 1265. Data truncated for column 'EmpID' at row 1
不管怎样,EmpID值不超过6位,且值为正数。
有什么解决方案可以让我从 csv 文件插入数据吗?
错误消息似乎暗示 CSV 文件中的某些数据不适合
INT
列。您可以使用此表定义:
CREATE TABLE Department (
EmpID VARCHAR(100) NOT NULL,
Designation VARCHAR(80) NOT NULL,
Department VARCHAR(80) NOT NULL,
PRIMARY KEY(EmpID)
);
然后通过
LOAD DATA
填充表格,并通过以下方式检查 EmpID
中的宽数据:
SELECT *
FROM Department
WHERE LENGTH(EmpID) > 6;
数据截断错误的原因通常是当应该在预期列中输入的值或数据类型不是检测到的值或数据类型时。仔细检查您尝试上传的 CSV,以检查与
EmpID
对应的值是否确实是您设置的“INT”。