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

c0vxltue  于 2023-01-25  发布在  Mysql
关注(0)|答案(1)|浏览(138)

标题几乎说明了一切。我想知道如何更改远程或本地表(例如添加一个列)会影响它们之间的连接,并且找不到关于它的任何资源。那么这样做有效吗?(我假设它没有,因为否则就不会有两者必须首先具有相同模式的约束)但如果它起作用,这是否双向的?须采取甚么步骤?
我将感谢任何帮助,特别是有关这个问题的资源链接。

siv3szwd

siv3szwd1#

如果更改远程系统上的基表,则必须DROP,然后重新创建连接到它的联邦表。
https://dev.mysql.com/doc/refman/8.0/en/federated-usagenotes.html表示:

  • FEDERATED存储引擎支持SELECT、INSERT、UPDATE、DELETE、TRUNCATE TABLE和索引。它不支持ALTER TABLE ...
  • FEDERATED引擎无法知道远程表是否已更改。

https://dev.mysql.com/doc/refman/8.0/en/federated-create.html表示:
创建本地表时,它必须具有与远程表相同的字段定义。
因此,维护联邦表是一个手动的过程,如果在远程端执行ALTER TABLE,则不支持对它的连续访问。
坦率地说,我从来没有发现联邦表有什么好的用途,我宁愿编写连接到多个数据库示例并直接查询表的应用程序。

相关问题