2013-03-26 38 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)