2014-05-09 59 views
0

我有關於MySQL複製的以下查詢。帶有不同表名的MySQL複製&只有特定列

1)假設我想用不同的表名進行主從複製,那麼可能嗎?

Ex。 大師>> Db1.student我想複製Slave >> Db2.employee表。

2)如果我想只複製同一表中的特定列,那麼它有可能嗎?

法師>> Db1.student

  • ID
  • 姓氏
  • parentname
  • 狀態

奴隸>> Db2.student

  • ID
  • 姓名
  • 姓氏

除此之外是否有任何其他的方式來實現/溶液上面的查詢(即MySQL的查看)或任何其他替代方法?

在此先感謝。

+0

嘗試查看[views](http://dev.mysql.com/doc/refman/5.0/en/create-view.html),以顯示數據的子集。我建議你可以在主服務器上創建視圖並複製視圖而不是完整的表格。 – vogomatix

+0

我可以只複製該視圖? 因爲我不想把我所有的表數據都拷貝到從數據庫中,因爲有一些敏感數據,所以我只想將特定的列數據拷貝到從屬數據庫中。 –

回答

0

的eassiest方法是使用這樣一種觀點:

CREATE VIEW Db2.student AS 
    SELECT id, firstname, lastname 
     FROM Db1.student; 

如果要過濾在DB2一些內容查看您可以一些過濾器添加到視圖創建。例如:

CREATE VIEW Db2.student AS 
    SELECT id, firstname, lastname 
     FROM Db1.student 
     WHERE Db1.student.status = 1; 

我希望它適合你。

+0

是的,它是有效的,但如果MySQL服務器不同呢? 也在同一臺服務器2不同的用戶有DB1和DB2那麼它也會工作嗎? –

+0

然後你應該使用聯邦表。我從來沒有用過它。你可以在這裏閱讀一些關於這個http://dev.mysql.com/doc/refman/5.0/en/federated-use.html – fmgonzalez

+0

查看將只適用於相同的服務器。對於不同的服務器,我需要進行主從複製。 同樣在視圖中,我們需要爲該另一個數據庫用戶授予特定表/列的權限。 –

相關問題