我想使用命令行客户端将数据从excel导入mysql数据库。 这是我的csv文件的构建示例:
Name 1 | 1 | 2 | 3 | Name 2 | 1 | 2 | 3 | Name 3 | 1 | 2 | 3 |
我正在使用代码:
LOAD DATA LOCAL INFILE 'path to file.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
我得到“查询正常”,使用此代码,表格上的格式应该与csv文件完全一样,但我得到了这个结果:
| NULL | NULL | NULL | | NULL | NULL | NULL | | NULL | NULL | NULL |
有什么问题?
答案 0 :(得分:0)
好像你用过'|'在您的csv文件中作为分隔符而不是 逗号,尝试代码
`LOAD DATA LOCAL INFILE 'path to file.csv' INTO TABLE table_name FIELDS TERMINATED BY '|'LINES TERMINATED BY '\n';`
答案 1 :(得分:0)
假设以下表格结构:
CREATE TABLE `table_name` (
`name` VARCHAR(20) CHARACTER SET utf8 DEFAULT NULL,
`value1` INT(11) DEFAULT NULL,
`value2` INT(11) DEFAULT NULL,
`value3` INT(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
和文件,csv-file.csv:
Name 1,1,2,3
Name 2,1,2,3
Name 3,1,2,3
当我运行声明时:
mysql> LOAD DATA INFILE '/path/csv-file.csv'
-> INTO TABLE `table_name`
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\n';
mysql> SELECT `name`, `value1`, `value2`, `value3`
FROM `table_name`;
获得以下结果:
+--------+--------+--------+--------+
| name | value1 | value2 | value3 |
+--------+--------+--------+--------+
| Name 1 | 1 | 2 | 3 |
| Name 2 | 1 | 2 | 3 |
| Name 3 | 1 | 2 | 3 |
+--------+--------+--------+--------+
3 rows in set (0.00 sec)