我习惯使用 PHPmyadmin 来管理我的 mySQL 数据库,但我开始更多地使用命令行。我正在尝试将 CSV 文件导入到名为 source_data 的表中,如下所示...
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| code | varchar(10) | YES | | NULL | |
| result | char(1) | YES | | NULL | |
| source | char(1) | YES | | NULL | |
| timestamp | varchar(30) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
我的 CSV 文件看起来像这样......
code,result,source,timestamp
123 ABC,,,
456 DEF,,,
789 GHI,,,
234 JKL,,,
567 MNO,,,
890 PQR,,,
我正在使用这个命令..
LOAD DATA INFILE '/home/user1/data.csv' INTO TABLE source_data FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
这会插入正确数量的行,但每一行都显示 NULL,我哪里出错了?
最佳答案
由于 CSV 文件不包含所有表格列(它缺少 id
列),您需要明确指定应写入的列。
LOAD DATA INFILE '/home/user1/data.csv'
INTO TABLE source_data
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(code, result, source, timestamp);
关于mySQL 命令行导入 CSV 给我 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35903206/