2015-07-03 38 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。