我习惯使用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,我哪里错了?
答案 0 :(得分:2)
由于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);
答案 1 :(得分:1)
好吧,我希望这不是一个案例,你说表名是 source_data ,在命令中名称是数据