我試圖將文本文件導入到mysql數據庫中。首先,我創建的模式:mysql導入語句切斷整數
Create table tbl_windspeed(
year int,
month varchar(50),
speed decimal,
location varchar(50));
這裏的txt文件的部分內容:同一行作爲上述
2015 feb 15.7 Neumayer
2015 sep \N Neumayer
2015 nov \N Neumayer
2015 jun 17.3 Neumayer
1976 jul \N Rothera
1976 may \N Rothera
1976 oct \N Rothera
1976 apr \N Rothera
1976 mar \N Rothera
1976 aug \N Rothera
1976 jan \N Rothera
這裏的import語句和:
LOAD DATA INFILE 'csv_windspeed.txt' INTO TABLE tbl_windspeed;
|015 | feb | 16 | Neumayer
|015 | sep | NULL | Neumayer
|015 | nov | NULL | Neumayer
|015 | jun | 17 | Neumayer
|76 | jul | NULL | Rothera
|76 | may | NULL | Rothera
|76 | oct | NULL | Rothera
|76 | apr | NULL | Rothera
|76 | mar | NULL | Rothera
|76 | aug | NULL | Rothera
|76 | jan | NULL | Rothera
因此,有兩件事情:
1)年整數正在切斷
2)即使它在表格模式中被指定,它們的風速數據也不會被讀取爲小數。
有一件事有趣不過,當我運行查詢:
SELECT * FROM tbl_windspeed WHERE year = 1962
我得到這樣的結果:
|62 | nov | 8 | Faraday
|62 | jun | 11 | Faraday
|1962 | jul | 11 | Grytviken
|1962 | may | 7 | Grytviken
|1962 | oct | 6 | Grytviken
|1962 | apr | 7 | Grytviken
|1962 | mar | 12 | Grytviken
|1962 | aug | 7 | Grytviken
|1962 | jan | 9 | Grytviken
|1962 | dec | 8 | Grytviken
|1962 | feb | 9 | Grytviken
|1962 | sep | 9 | Grytviken
|1962 | nov | 12 | Grytviken
|1962 | jun | 9 | Grytviken
|2 | jul | 13 | Halley
|2 | may | 9 | Halley
|2 | oct | 11 | Halley
|2 | apr | 13 | Halley
|2 | mar | 11 | Halley
|2 | aug | 10 | Halley
|2 | jan | 8 | Halley
|2 | dec | 9 | Halley
|2 | feb | 11 | Halley
|2 | sep | 14 | Halley
|2 | nov | 9 | Halley
|2 | jun | 11 | Halley
| | jul | 14 | Signy
| | may | 11 | Signy
| | oct | 19 | Signy
| | apr | 15 | Signy
| | mar | 11 | Signy
| | aug | 12 | Signy
| | jan | 11 | Signy
| | dec | 11 | Signy
| | feb | 16 | Signy
| | sep | 18 | Signy
| | nov | 13 | Signy
| | jun | 16 | Signy
因此,即使MySQL的實現這些行是從1962年,他們是仍然被切斷。同樣,小數點正在被切斷。我不太確定這裏發生了什麼,任何幫助將不勝感激,謝謝。
更新:當我在mysql中運行查詢(獲得前10名最高windspeeds)這就是結果:
|1988 | jun | 27.9 | Neumayer
|1997 | nov | 26.9 | Neumayer
|1981 | jul | 26.8 | Neumayer
|2002 | jun | 25.8 | Neumayer
|2006 | aug | 25.6 | Neumayer
|1989 | apr | 25.5 | Neumayer
|1995 | aug | 25.5 | Neumayer
|1981 | may | 25.4 | Neumayer
|1999 | aug | 25 | Neumayer
|8 | sep | 25 | Signy
通知的最後一行的年柱被切斷。現在,當我運行,運行的是完全相同的查詢一個C程序,這是結果:
988 jun 27.9 Neumayer
997 nov 26.9 Neumayer
981 jul 26.8 Neumayer
002 jun 25.8 Neumayer
006 aug 25.6 Neumayer
989 apr 25.5 Neumayer
995 aug 25.5 Neumayer
981 may 25.4 Neumayer
999 aug 25 Neumayer
958 sep 25 Signy
我認爲,必須有一些做與視圖設置?這是相同的查詢,相同的數據,但有時年份列被截斷。
其實'decimal'變得圓了。你能把這個字段改成「浮動」嗎?我還在想。 – jiveturkey
只是將模式更改爲浮動模式並且工作。不知道爲什麼,但你現在是1/1。你能修好年份專欄嗎? – alexs973
是的,這很奇怪。 'INT'默認爲'INT(11)',但嘗試給它一個明確的限制 - INT(5)' – jiveturkey