2012-04-17 73 views
0

我有一個名爲schools的新數據庫表。我在另一臺服務器上有一個現有的數據庫表,其中包含我需要的類似學校信息。例如:姓名,城市,州等,我使用phpMyAdmin來管理這個。將某些表列導入數據庫表

我的問題是...什麼是最好的/詳細的方式來導出學校數據從外部服務器的數據庫表到新的數據庫表,但只提取和導入我需要的列(例如:名稱,城市,州等)?

+0

您是否有權訪問兩臺服務器上的命令行(或至少是mysql客戶端程序)? – liquorvicar 2012-04-17 18:15:07

+0

我不這麼認爲 – Joe 2012-04-17 18:16:44

+0

liquorvicar - 如果你在談論兩臺服務器上的phpmyadmin訪問,那麼是的,我做 – Joe 2012-04-17 18:18:56

回答

1

在SQL中,選擇你需要的數據,

SELECT (name, city, state) FROM schools 

然後在PHP中,它輸出到某種格式,

$results = $query->fetchAll(); 
for ($i=0; $i<sizeof($results); $i++) { 
    # format the output 
} 

phpMyAdmin的有功能的進口(出口)的數據在某些格式包括CSV。

然後,您可以將CSV文件導入新服務器。

你也可以這樣做:保存整個數據庫並將其導入新服務器。然後,如果你使用phpMyAdmin那麼它可以讓你在SQL格式的全表導出到一個可下載的文件刪除你不需要使用SQL按照以下語法列,

ALTER TABLE tableName DROP columnName; 
+0

我想我也可以將來自其他服務器的學校信息導入到一個新的臨時表中,然後從該表中取出任何信息並插入到新學校表的新列中。 – Joe 2012-04-17 18:23:33

+0

無論什麼漂浮你的船:) – Ozzy 2012-04-17 18:29:29

+0

船浮在阻力最小的路徑:)感謝Ozzy – Joe 2012-04-17 18:34:51

1

。這似乎是導出數據的最佳方式。然後,您可以將該文件上傳到目標服務器,並通過phpMyAdmin將其導入。

這種方法的一個警告是,你需要確保你的表名不衝突。如果他們這樣做,你將需要重命名一個或另一個(我建議在導出之前重命名源表)。

一旦你導入了整個表格,你可以在需要的字段上執行INSERT INTO ... SELECT。

+0

這是我在奧茲的評論下說的嗎? – Joe 2012-04-17 18:29:45

+0

@Joe是的,我沒有看到這個評論。 – liquorvicar 2012-04-17 18:37:56

+0

好的非常感謝liquorvicar – Joe 2012-04-17 18:39:07