2011-07-25 96 views
1

對於測試代碼,我使用SQLYog的「複製到其他主機」選項將數據從實時數據庫複製到測試數據庫。大多數時候,這沒關係。但對於某些表格來說,數據集是絕對巨大的,我只需要一小部分數據進行測試。 「複製到不同的主機」對話框可讓您選擇僅複製結構或結構和數據。SQLYog:複製部分數據?

如果我只想要部分數據,我必須運行select * on table where condition查詢,將結果導出爲SQL查詢,將該查詢導入測試主機並運行它。雖然這可行,但這並不是一個有趣的過程,特別是在測試數據的「小」子集仍然是很多行的情況下。如果某些數據已被複制,則會增加複雜性,因爲我必須編寫查詢以獲取目標上的密鑰列表,然後將條件添加到主要條件中。

有沒有辦法讓「複製到不同主機」功能只有選擇性地將行復制到目標數據庫?

回答

1

目前無法在SQLyog複製工具中的單個行上使用WHERE條件。只要選擇一張表進行復制就沒問題,但用更多的表格就沒有意義了。

你現在可以做的是在來源上創建一個小的「虛擬」表並複製這個表。工作流可能是這樣的:

1)CREATE TABLE newtable AS SELECT * FROM oldtable WHERE ...

2)現在使用SQLyog的GUI複製newtable和未來如果需要

3拖放到源) RENAME newtable如果需要,則在目標上

這將減少網絡流量以僅考慮要傳輸的行。並且您將避免導出到文件,因爲「減少」保留在源服務器內部(不涉及文件系統或網絡)。

+0

我只對源數據庫擁有隻讀訪問權限,所以這不是一個選項,不幸的是。不管怎麼說,還是要謝謝你。 – GordonM