2010-09-30 126 views
3

我需要從數據庫A中的表中導出數據,然後將其導入到數據庫B中的相同結構的表中。這需要通過phpMyAdmin完成。問題出在這裏:無論我選擇什麼格式導出(CSV或SQL),所有列(包括自動遞增的ID字段)都會導出。由於數據庫B中的表中已經有數據,因此無法將ID字段導入新記錄 - 我需要它導入記錄並將新的自動遞增值分配給記錄。我需要在導出中使用哪些設置(以便能夠選擇要導出的列)還是導入(告訴它忽略文件中的ID列)?如何通過phpMyAdmin導入到mySQL時忽略id列?

或者我應該只導出爲CSV,然後在Excel中打開並刪除ID列?有沒有辦法告訴phpMyAdmin它應該爲正在導入的記錄生成新的自動遞增的ID,而不告訴我導入文件中的列計數不正確?

編輯:澄清,我只出口數據,而不是結構。

回答

6

Excel是刪除列的選項,可能是此時最快的選項。

但是,如果這些數據庫位於同一臺服務器上,並且您有權訪問,則可以訪問INSERT INTO databaseB.table (column_list) SELECT column_list FROM databaseA.table

您也可以運行SELECT語句來獲取所需的列,然後導出結果。這個鏈接應該在最新版本的PHPMyAdmin中可用。

+1

謝謝。我沒有意識到我可以做出查詢結果的導出。這是一個很大的幫助。 – EmmyS 2010-09-30 20:37:36

1

這是因爲原來的問題好幾年了,但是這仍然獨佔鰲頭谷歌搜索,所以我會針對我工作發表評論:

如果我在CSV刪除ID列,然後嘗試要導入,我得到'第1行CSV輸入中的無效列數'。錯誤。

但是,如果我保留Id列但在Excel中將所有Id值更改爲NULL(只需在單元格中輸入NULL),那麼當我導入時,id自動增加將使用連續數字填充新記錄(大概從最高現有記錄Id +1開始)。

我正在使用PHPMyAdmin 4.7.0