2010-05-12 41 views
1

我試圖想出同步2個不同數據庫表的特定行的最佳方法。因此,例如有不同的數據庫中這樣2個產品表...如何檢索作爲INSERT語句的MYSQL記錄

源數據庫

product{ 
    merchant_id, 
    product_id, 
    ... additional fields 
} 

目標數據庫

product{ 
    merchant_id 
    product_id 
    ... additional fields 
} 

因此,數據庫架構上是相同的。然而,我正在尋找選擇具有特定merchant_id的記錄,從具有該merchant_id的目標表中刪除所有記錄,並用同一merchant_id的原始數據庫中的記錄替換這些記錄。

我的第一個想法是使用mysqldump,解析出create table語句,並且只運行Insert語句。看起來像一個痛苦,但。所以我想知道是否有更好的技術來做到這一點。

我會認爲mysql有一些創建INSERT語句作爲SELECT語句的輸出的方法,因此您可以定義如何將特定的記錄信息插入到新的數據庫中。

任何幫助將不勝感激,非常感謝你。

回答

1

phpMyAdmin具有此功能的一部分:您可以運行查詢,然後將該查詢的結果導出到包含CREATE語句的文件中。

更新:而且mysqldump有太:Link

mysqldump -u username -p --where="id='merchant_id'" databasename 

在問候代替商戶的ID,這部分我不完全聽懂了沒有。你可能會更好地進行手動搜索+替換它們。你能舉出兩個這樣的記錄的真實例子嗎?

+0

是的,我知道mysqldump具有該功能,我正在尋找一個更好的解決方案,其他明智的我必須通過解析文件來刪除所有CREATE TABLE語句。我在考慮可能有一種方法只獲得INSERT語句。 – Aglystas 2010-05-12 18:17:25

+1

@Aglystas爲什麼不使用'--no-create-info'去除CREATE TABLE? http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_no-create-info – 2010-05-12 18:20:40