2014-06-21 95 views
0

我嘗試從文本或csv文件加載數據到MySQL Workbench database中的表中,遇到了一些問題。MySQL解決數據加載問題?

首先,系統無法找到具有路徑c:\test.txt的文本文件。

從Stackoverflow我瞭解到,使用Windows時,應該使用斜槓/或兩個雙反斜槓\\。在某些情況下,您可以使用/,在其他情況下您無法使用。

有誰知道爲什麼?

只要解決了這個問題,我的其他問題就出現在嘗試從文件中將數據加載到表中時發生。

首先,我創建使用這個腳本的表:

CREATE TABLE testtable (
    entry_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    title VARCHAR(80), 
    book_number INT 
); 

然後我做了一個文本文件,test.txt,這些內容:

1,first book,17 
2,second book,34 
3,third book,64 
4,fourth book,69 

,並把它放在c-drive

最後我試圖從文本文件到表 'testtable' 中加載數據,使用這個腳本:

LOAD DATA LOCAL INFILE 'C:\ test.txt的' INTO TABLE TestTable的;

以下錯誤消息出現:

18:10:05 LOAD DATA LOCAL INFILE 'c:\\test.txt' INTO TABLE testtable 4 row(s) affected, 12 warning(s): 1265 Data truncated for column 'entry_id' at row 1 1261 Row 1 doesn't contain data for all columns 1261 Row 1 doesn't contain data for all columns 1265 Data truncated for column 'entry_id' at row 2 1261 Row 2 doesn't contain data for all columns 1261 Row 2 doesn't contain data for all columns 1265 Data truncated for column 'entry_id' at row 3 1261 Row 3 doesn't contain data for all columns 1261 Row 3 doesn't contain data for all columns 1265 Data truncated for column 'entry_id' at row 4 1261 Row 4 doesn't contain data for all columns 1261 Row 4 doesn't contain data for all columns Records: 4 Deleted: 0 Skipped: 0 Warnings: 12 0.031 sec 

我曾經嘗試都TXT和CSV文件,並在某些情況下,所收到的有關不正確的整數值的錯誤消息。

任何人都可以幫忙嗎?

在此先感謝。

回答

0

我認爲第一列是自動生成的,因爲它是主鍵和自動增量。儘量不要將第一個整數放在csv文件中,只需在文件中放置每行兩列。

0

首先我要感謝迭戈的回答。

由於我詢問了有關將數據加載到MySQL數據庫表中的問題,我發現至少有一些問題的原因。我想分享這與**堆棧**溢出參與者。

將數據從文本文件加載到MySQL數據庫的表中是相當容易的。然而,在嘗試這之前,應該考慮幾個問題,並且可能出現的錯誤有幾個來源。困難的部分是找出導致任何具體問題的原因。

當創建一個文本文件以供稍後加載到MySQL數據庫表中時,首先要考慮的是如何安排數據。根據我的經驗,唯一可行的方法是將數據值排列成行,並在每行中記錄一條記錄,並通過製表符分隔值。不要用逗號分隔值。

完成此操作後,您可以使用擴展名.txt或.csv保存文本文件。

對我來說,另一個問題是一個特定的問題,是由於使用unicode字符編碼保存了一些文本文件引起的。顯然,MySQL既不能識別unicode也不能識別UTF-8編碼,這就使ANSI編碼成爲唯一可用的選項。 Unicode提供了保存非英文字母和字符的選項,這是我在某些情況下使用它的原因。

我提到的有關不正確整數值的問題是由保存在unicode中的文本文件引起的。

我還沒有發現什麼時候可以使用單個反斜槓指向文件路徑,以及何時使用雙反斜槓或單個斜槓,在驅動器號後面。

我歡迎評論。

謝謝。

+0

MySQL支持許多編碼,包括UTF-8和unicode。至於導入CSV格式的數據,unicode不支持UTF-8。用逗號或分號分隔你的值的工作很好,看看http://dev.mysql.com/doc/refman/5.5/en/load-data.html和其中的語法。至於在Windows上的文件路徑,你有沒有嘗試用雙引號包裝(我不是Windows專家,但我通常在命令行參數中看到雙引號)。 –