MySQL联邦存储引擎如何处理本地和远程数据库的列/模式更改?



标题已经说明了一切。我想知道对远程或本地表的更改(例如添加一列)将如何影响它们之间的连接,并且找不到有关它的任何资源。这有用吗?(我假设它不是,因为否则就不会有约束,两者必须有相同的模式放在首位)但如果它工作,它是双向的,必须完成哪些步骤?

我将非常感谢任何帮助,特别是关于这个问题的资源链接。

如果更改远程系统上的基表,则必须DROP然后重新创建连接到它的联邦表。

https://dev.mysql.com/doc/refman/8.0/en/federated-usagenotes.html表示:

  • 联邦存储引擎支持SELECT、INSERT、UPDATE、DELETE、TRUNCATE表和索引。不支持ALTER TABLE…

  • 联邦引擎无法知道远程表是否已经更改。

https://dev.mysql.com/doc/refman/8.0/en/federated-create.html表示:

创建本地表时,它必须具有与远程表相同的字段定义。

因此,维护联邦表是一个手动过程,如果在远程端执行ALTER table操作,则不支持对其进行连续访问。

坦率地说,我从来没有发现联邦表有什么好的用途。我宁愿编写我的应用程序连接到多个数据库实例并直接查询表。

最新更新