我正在尝试将. csv文件加载到mySQL Server中。我必须在终端中执行此操作。我导入. csv的过程如下:
- mysql〉创建表经销商(经销商ID INT主键,经销商名称VARCHAR(50));
- mysql〉加载数据INFILE '/dealer_df. csv '到表经销商字段终止于','忽略1行(经销商ID,经销商名称);
数据:
1,melodytoyota
2,toyotasunnyvale
3,toyota101
4,sftoyota
5,autonationtoyotahayward
6,hondaofstevenscreek
7,autonationhondafremont
8,sfhonda
9,southbayhonda
10,citytoyota
11,fremonttoyota
12,pierceytoyota
13,larryhopkinshonda
14,andersonhonda
15,honda-rc
16,capitolhonda
17,putnamtoyota
output:(这个格式可能看起来不对,但是你看到的输出和我看到的一样。这也是它在终端中的样子。
mysql> SELECT * FROM Dealers;
+-----------+--------------------------+
| Dealer_ID | Dealer_Name |
+-----------+--------------------------+
| 1 | melodytoyota
|
|2 | toyotasunnyvale
|yota101
|oyota
| 5 | autonationtoyotahayward
| 6 | hondaofstevenscreek
| 7 | autonationhondafremont
|nda
|| southbayhonda
|itytoyota
|| fremonttoyota
|| pierceytoyota
| 13 | larryhopkinshonda
|| andersonhonda
|da-rc
| capitolhonda
| putnamtoyota
+-----------+--------------------------+
17 rows in set (0.00 sec)
我试着在不同的表上用不同的数据执行完全相同的集合,效果很好。
我在找这样的table:
mysql> SELECT * FROM Dealers;
+-----------+--------------------------+
| Dealer_ID | Dealer_Name |
+-----------+--------------------------+
| 1| melodytoyota |
| 2| toyotyasunnyvale |
... etc ...
| 16| capitolhonda |
| 17| putnamtoyota |
+-----------+--------------------------+
产出
mysql> SELECT Dealer_ID, hex(Dealer_Name) FROM Dealers;
这里有几行输出。奇怪的格式是我的,表看起来干净的终端。
| 1 | 6D656C6F6479746F796F74610A0D
| 2 | 746F796F746173756E6E7976616C650D
| 3 | 746F796F74613130310D
| 4 | 7366746F796F74610D
| 5 | 6175746F6E6174696F6E746F796F7461686179776172640D
| 6 | 686F6E64616F6673746576656E73637265656B0D
现在我看第三行,看起来所有的文本数据都在那里,但是没有正确显示,这到底是怎么回事?我是个新手,所以我有点不懂。
1条答案
按热度按时间v440hwme1#
逗号分隔值文件的换行符不一致:
第一行以
0A0D
(\n\r)结尾,后续行以0D
(\r)结尾。从csv文件的第一行删除
0A
,另外将LINES TERMINATED BY '\r'
附加到LOAD DATA INFILE sql语句。