mysql复制一个视图不会工作
问题描述:
我想复制一个特定的视图在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,即使该表被忽略,也可以复制视图。
任何想法如何解决这个问题?
谢谢,
答
没有基表,视图将无法正常工作。您可以忽略复制中的基表,以便新数据不会进入,但该表必须存在才能使VIEW起作用。
MySQL中的视图只不过是SELECT语句的简单别名。它们没有实现,没有数据存储在内部,因此每次从VIEW中选择时都会执行它们的底层SELECT。