2015-07-03 33 views
0

我想複製一個特定的視圖在mysql從屬而忽略基表。 我已經創建了一個視圖,從特定數據庫上的特定表中選擇*。 在my.cnf中我已經限制複製下面的奴隸:mysql複製一個視圖不會工作

replicate-do-db=DBNAME 
replicate-ignore-table=TABLENAME 

當我開始從複製,我得到一個SQL錯誤:

Last_SQL_Error: Error 'TABLENAME 'DBNAME.TABLENAME' doesn't exist' on query. Default database: 'DBNAME'. Query: 'CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `TABLENAMEVIEW` AS SELECT * FROM TABLENAME' 

我用mysql 5.5 .1和根據以下http://dev.mysql.com/doc/refman/5.5/en/replication-features-views.html,即使該表被忽略,也可以複製視圖。

任何想法如何解決這個問題?

謝謝,

回答

2

沒有基表,視圖將無法正常工作。您可以忽略複製中的基表,以便新數據不會進入,但該表必須存在才能使VIEW起作用。

MySQL中的視圖只不過是SELECT語句的簡單別名。它們沒有實現,沒有數據存儲在內部,因此每次從VIEW中選擇時都會執行它們的底層SELECT。

相關問題