加载数据本地Infile问题

时间:2012-11-28 01:14:39

标签: mysql

好的我正在尝试将txt文件上传到我的表格中。我的问题是现场终结者。我尝试过使用几个字符,但没有想要工作。我的最后一次尝试是'。'

txt文件:

John. B. Smith. 123456789. 1955-01-09. 731 Fondren, Cary, NC. M. 30000. 333445555. 5.   
Franklin. T. Wong. 333445555. 1945-12-08. 638 Voss, Cary, NC. M. 40000. 888665555. 5. 
Alicia. J. Zelaya. 999887777. 1958-07-19. 3321 Castle, Apex, NC. F. 25000. 987654321. 4.
Jennifer. S. Wallace. 987654321. 1931-06-20. 291 Berry, Garner, NC. F. 43000. 888665555. 4.
Ramesh. K. Narayan. 666884444. 1952-09-15. 975 Fire Oak, Angier, NC. M. 38000. 333445555. 5.
Joyce. A. English. 453453453. 1962-07-31. 5631 Rice, Raleigh, NC. F. 25000. 333445555. 5.
Ahmad. V. Jabbar. 987987987. 1959-03-29. 980 Dallas, Cary, NC. M. 25000. 987654321. 4.
James. E. Borg. 888665555. 1927-11-10. 450 Stone, Cary, NC. M. 55000. NULL. 1.

MySQL代码:

mysql> load data local infile 'c:/employee upload2.txt' into table employee
    -> fields terminated by '.' lines terminated by '\n';
Query OK, 8 rows affected, 80 warnings (0.02 sec)
Records: 8  Deleted: 0  Skipped: 0  Warnings: 80

表似乎所有东西都试图塞进第一个字段,但是只能容纳前8个字符。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您的数据格式不佳。如果你希望这个工作有任何希望,你需要一个一致的字段分隔符。如果不转义其他字段(如地址字段(或名称字段,但未在示例数据中显示))中的空格,则不能使用以空格分隔的值。

您也不会在此文件中包含列标题。

如果您只是使用制表符分隔值而不是空格分隔,那么对于字段分隔符,转义和行分隔符(假设LOAD DATA INFILE实际上是您的行)的默认\n设置,这可以正常工作分离器)

默认的MySQL行为(如果没有为分隔符指定任何内容,字段控制字符,转义序列或行开始和结束字符是这样的:

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''

您可以在数据集中使用您喜欢的任何字符,只要您匹配查询即可使用相同的设置。

如果你想坚持空间分隔符,你可以做这样的事情

FIELDS TERMINATED BY ' ' ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''

"放在可能在其中包含空格(或所有字段)的任何字段周围,或使用\\转义字段数据中的所有空格。如果它们位于由双引号括起的字段内,则不需要转义空格。