1. 检查 CSV 文件
打开 CSV 文件,确保第一列(ID 列)的第一个值是 1,并且没有隐藏字符。
使用文本编辑器(如 Notepad++)将文件另存为 UTF-8 编码格式。
2. 检查 MySQL 表结构
运行以下 SQL 语句检查表结构:
sql
复制
DESCRIBE your_table_name;
确保 ID 列的类型是 INT,并且没有设置 AUTO_INCREMENT。如果需要修改表结构,可以使用以下语句:
sql
复制
ALTER TABLE your_table_name MODIFY COLUMN ID INT;
3. 使用 LOAD DATA INFILE 导入数据
确保 LOAD DATA INFILE 语句正确指定了列和格式。例如:
sql
复制
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE your_table_name
CHARACTER SET utf8
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS -- 如果 CSV 文件有标题行,忽略第一行
(ID, column2, column3, ...); -- 指定列名
4. 处理 Warning 1366
Warning 1366 表示 MySQL 无法正确解析整数值。可能的原因是:
CSV 文件中 ID 列的值包含非数字字符。
文件编码问题。
检查 CSV 文件的第一列,确保所有值都是纯数字。可以使用以下命令查看文件内容:
bash
复制
cat /path/to/your/file.csv
如果发现问题,可以使用工具(如 sed)清理文件:
bash
复制
sed -i 's/[^0-9,]//g' /path/to/your/file.csv
5. 重新导入数据
清理文件后,重新运行 LOAD DATA INFILE 语句导入数据。