2013-08-25 35 views
0

我在下面的電腦中製作了一個名爲'test'的表格。部分削減電話號碼?

create table test(
telnum varchar(20) not null, 
reg_date datetime not null default '0000-00-00 00:00:00', 
remarks text, 
primary key(telnum) 
); 

我上傳了一個名爲1.txt的文件到表'test'中。 1.TXT的內容是一樣初級講座:

 
01011112222 

01022223333 

01033334444 

和語法 'INFILE載荷數據' 就像初級講座:

​​

但是有一個問題。

每個電話號碼都像下面一樣剪切。

 
Query OK, 3 rows affected, 3 warnings (0.00 sec) 
Records: 3 Deleted: 0 Skipped: 0 Warnings: 3 

mysql> select * from test; 

+-------------+---------------------+---------+ 
| telnum  | reg_date   | remarks | 
+-------------+---------------------+---------+ 

     |12222 | 0000-00-00 00:00:00 | 
     |23333 | 0000-00-00 00:00:00 | 
     |34444 | 0000-00-00 00:00:00 | 
+-------------+---------------------+---------+ 
3 rows in set (0.00 sec) 

從11個字符中只剩下5個字符。 6個字符消失。

而第二個問題是'警告'。警告的原因如下所示。

 
mysql> show warnings; 
+---------+------+---------------------------------------------------+ 
| Level | Code | Message           | 
+---------+------+---------------------------------------------------+ 
| Warning | 1264 | Out of range value for column 'reg_date' at row 1 | 
| Warning | 1264 | Out of range value for column 'reg_date' at row 2 | 
| Warning | 1264 | Out of range value for column 'reg_date' at row 3 | 
+---------+------+---------------------------------------------------+ 

3 rows in set (0.00 sec) 

我沒有把任何東西放到reg_date字段。 但該消息表示列'reg_date'的範圍值超出範圍。

是什麼原因,我該如何解決這些問題?

+0

問題是長期增添了些許混亂,你可以創建一個sqlfiddle例如 – skv

回答

0

嘗試更改行分隔符。在Windows上它通常\r\n而不是\n這是默認的,如果你省略LINES TERMINATED BY條款

LOAD DATA INFILE "/tmp/1.txt" 
IGNORE INTO TABLE test 
LINES TERMINATED BY '\n' 
+0

@ user2714872有沒有幫助?你的問題需要更多幫助嗎? – peterm