我会将一百万行从CSV文档导入数据库表。
为了做到这一点,我使用MySQL加载数据infile。
问题在于,一切正常! 但是,可选地用“括起来的行存在问题。
CSV文件。
Name|Value\n
Anna|\n
Ben |Test\n
Chip|"My ""special"" value"\n
Deny|"I" like it\n
East|You not\n
MySQL命令。
LOAD DATA LOCAL INFILE 'test.csv'
INTO TABLE `test`
FIELDS TERMINATED BY '|'
ENCLOSED BY '"'
LINES TERMINATED BY "\n"
IGNORE 1 LINES
(`name`, @value)
SET
`value` = nullif(@value, '')
;
结果。
Query OK, 4 rows affected, 1 warning (0.17 sec)
Records: 4 Deleted: 0 Skipped: 0 Warnings: 1
警告。
+---------+------+--------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------+
| Warning | 1265 | Data truncated for column 'value' at row 4 |
+---------+------+--------------------------------------------+
桌子。
+----+------+------------------------+
| id | name | value |
+----+------+------------------------+
| 1 | Anna | NULL |
| 2 | Ben | Test |
| 3 | Chip | My "special" value |
| 4 | Deny | "I" like it
East|You |
+----+------+------------------------+
怎么解决?
请注意:
我的问题不是警告!
如果您看到:csv文件包含6行和5行。 (没有标题)我还需要在mysql表中5行/条目。 我只有4个条目。