2010-06-11 147 views
16

我已經創建了一個數據庫和一個表。我還創建了我將需要的所有領域。我創建了46個字段,其中一個是我的行ID。 CSV不包含ID字段,也不包含列的標題。我對這一切都很陌生,但一直試圖弄清楚這一點。我不是懶惰的要求答案,而是尋找方向。將CSV導入到MySQL

我想弄清楚如何導入CSV,但讓它開始導入數據開始在第二個字段,因爲我希望auto_increment將填寫ID字段,這是我創建的第一個字段。

我試過這些說明,但沒有運氣。誰能提供一些見解?

  1. CSV文件的列名必須與你的表
  2. 瀏覽到您的.csv文件所需
  3. 選擇CSV使用LOAD DATA選項
  4. 複選框「ON」爲替換表與文件
  5. 數據在字段由框終止,類型,
  6. ˚F ields通過盒,"
  7. 在由框逃脫字段,\
  8. 在由框終止線,auto
  9. 封閉在列名框中鍵入列名由,分離像column1,column2,column3
  10. 複選框爲ON 使用本地關鍵字

編輯:

CSV文件是32.4kb

我的CSV的第一行是:

Test Advertiser,23906032166,119938,287898,,585639051,287898 - Engager - 300x250,88793551,Running,295046551,301624551,2/1/2010,8/2/2010,Active,,Guaranteed,Publisher test,Maintainer test,example-site.com,,All,All,,Interest: Dental; custom geo zones: City,300x250,-,CPM,$37.49 ,"4,415","3,246",3,0,$165.52 ,$121.69 ,"2,895",805,0,0,$30.18 ,$37.49 ,0,$0.00 ,IMPRESSIONBASED,NA,USD 
+0

您是否嘗試過使用PHPMyAdmin? – 2010-06-11 19:30:16

+2

@Kerry:他列出了phpMyAdmin的說明,所以我會說是的。 – 2010-06-11 19:32:18

+0

感謝您的回覆,我發佈的指示是我在phpMyAdmin中使用的,但是我的信息被拋棄了。我在某處讀到,他們最好的辦法是讓csv上的列標題反映我表格中的字段。它是否正確? – 404error 2010-06-11 19:43:38

回答

41

您可以在導入期間爲某些列設置MySQL值。如果您的id字段設置爲自動遞增,則可以在導入期間將其設置爲空,然後MySQL將爲其分配遞增值。嘗試把這樣的事情在SQL標籤在phpMyAdmin:

LOAD DATA INFILE 'path/to/file.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' SET id=null; 
16

請看看這個網頁,看看它是否有你是什麼尋找。應該是你所需要的,因爲你只需要處理一張桌子。 MYSQL LOAD DATA INFILE

因此,例如,你可能會做這樣的事情:

LOAD DATA INFILE 'filepath' INTO TABLE 'tablename' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (column2, column3, column4); 

這應該給你一個想法。當然還有更多的選項可以在上面的鏈接中看到。

+0

謝謝我會給這個去看看我是否可以弄明白。非常感謝。 – 404error 2010-06-11 20:05:38

4

一定要使用LOAD DATA LOCAL INFILE如果導入文件是本地的。 :)

+0

如果文件已經是本地文件,則不需要。使用LOCAL可能會引入其他問題,例如「錯誤1148(42000):這個MySQL版本不允許使用該命令」,不需要使用MySQL版本的不兼容性[關於此討論](https://dev.mysql.com/doc/refman/5.0/en /loading-tables.html)。使用LOCAL可能需要檢查附加設置,例如在標誌的客戶端和服務器端:local-infile。對我而言,它仍然無法工作。 – Katarzyna 2015-04-14 22:29:14