2013-03-26 62 views
0

请耐心等待,因为这将是一个长长的邮件。作为一项任务的一部分,我使用MYSQL 5.6.10构建了一个TAC(手机)数据库。我创建了一个使用下面的SQL命令调用TACTest表:通过本地文件向MySQL插入信息的问题

CREATE TABLE TACTest (TAC VARCHAR(8), Make VARCHAR(384), Manufacturer VARCHAR(128), Band VARCHAR(384); 

我通过一个名为test.txt的是存储在我的C文件填充这个表:驱动器。下面是该文件的内容(6周不同的手机):

TAC|Marketing Name|Manufacturer|Band 
00100100|G410|Mitsubishi|GSM 1800,GSM 900 
00440227|This is a Test IMEI|(AEB) Armando Este Banquito|GSM 1800,GSM 900 
01283200|Bunting Camera – WX292|Jaguariuna - Brazil|GSM 1900,GSM850 (GSM800) 
|WX295 – EU (850/1900)|Motorola|GSM 1900,GSM850 (GSM800) 
35599803|Nüvifone A50|ASUSTek Computer Inc|GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800) 
01273300|"T410/T410i, T410s/T410si,T510/W510/T510i, X201/X201s, X201i/X201si, X201 Tablet, X201i Tablet, X100e, Edge 13"", Edge 14"", Edge 15"" , L512, L412 , Edge 13”, Edge 11”, X120e"|Lenovo Mobile Communication Technology Ltd|GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800) 

这是我用来填充表的SQL:

LOAD DATA LOCAL INFILE 'C:\\test.txt' INTO TABLE TACTest CHARACTER SET utf8 fields terminated by '|' lines terminated by '\n' IGNORE 1 LINES (TAC, Make, Manufacturer, Band); 

问题是,品牌和制造商列已丢失插入后数据库中的数据。这是在数据库中的信息进行制作和生产商列:

Make Manufacturer 
G410 Mitsubishi 
This is a Test IMEI (AEB) 
Bunting Camera Jaguariuna - Brazil 
WX295 Motorola 
N ASUSTek Computer Inc 
"T410/T410i, T410s/T410si,T510/W510/T510i, X201/X201s, X201i/X201si, X201 Tablet, X201i Tablet, X100e, Edge 13"", Edge 14"", Edge 15"" , L512, L412 , Edge 13 Lenovo Mobile Communication Technology Ltd 

本质上是生产商列,第2行已部分信息和制作列,行3-6已经部分信息?

我在这里做错了什么?插入特殊字符有什么特别的需要吗?任何帮助都感激不尽。

+1

由于有非ASCII字符,我想你需要你的'VARCHAR()单曲 – 2013-03-26 16:26:09

+0

后使用'字符集UTF8'这可以帮助你http://bugs.mysql.com/bug.php?id=10195 – 2013-03-26 17:06:33

回答

0

我刚刚运行了您提供的查询,并且获取了正确的数据。唯一的区别是在我们的操作系统,我相信(我的机器运行在Ubuntu上)

mysql> show create table TACTest \G 
*************************** 1. row *************************** 
     Table: TACTest 
Create Table: CREATE TABLE `TACTest` (
    `TAC` varchar(8) DEFAULT NULL, 
    `Make` varchar(384) DEFAULT NULL, 
    `Manufacturer` varchar(128) DEFAULT NULL, 
    `Band` varchar(384) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 
1 row in set (0.00 sec) 



mysql> select * from TACTest \G 
*************************** 1. row *************************** 
     TAC: 00100100 
     Make: G410 
Manufacturer: Mitsubishi 
     Band: GSM 1800,GSM 900 
*************************** 2. row *************************** 
     TAC: 00440227 
     Make: This is a Test IMEI 
Manufacturer: (AEB) Armando Este Banquito 
     Band: GSM 1800,GSM 900 
*************************** 3. row *************************** 
     TAC: 01283200 
     Make: Bunting Camera � WX292 
Manufacturer: Jaguariuna - Brazil 
     Band: GSM 1900,GSM850 (GSM800) 
*************************** 4. row *************************** 
     TAC:
     Make: WX295 � EU (850/1900) 
Manufacturer: Motorola 
     Band: GSM 1900,GSM850 (GSM800) 
*************************** 5. row *************************** 
     TAC: 35599803 
     Make: N�vifone A50 
Manufacturer: ASUSTek Computer Inc 
     Band: GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800) 
*************************** 6. row *************************** 
     TAC: 01273300 
     Make: "T410/T410i, T410s/T410si,T510/W510/T510i, X201/X201s, X201i/X201si, X201 Tablet, X201i Tablet, X100e, Edge 13"", Edge 14"", Edge 15"" , L512, L412 , Edge 13�, Edge 11�, X120e" 
Manufacturer: Lenovo Mobile Communication Technology Ltd 
     Band: GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800) 
6 rows in set (0.00 sec)