将InnoDB表复制到FEDERATED表中

问题描述

我想要一个带有FEDERATED引擎的新表,该表是从另一个现有的InnoDB表创建(克隆)的。像这样:

CREATE TABLE balance_live
  AS SELECT * FROM balance
  ENGINE=FEDERATED
  CONNECTION='MysqL://user:pass@8.8.8.8:3306/db/balance'

但这由于某些原因不起作用。

解决方法

您需要一个明确指定的实际表定义。这不是视图,而是表格。请参见此处以获取正确的语法: https://dev.mysql.com/doc/refman/8.0/en/federated-create-connection.html

在远程主机上执行SHOW CREATE TABLE balance;并将其用作定义,只需更改ENGINE=FEDERATED并添加CONNECTION子句即可。

,

creating federated tables上的mysql手册所述:

使用相同的表定义在本地服务器上创建表,但是添加将本地表链接到远程表的连接信息。

您不能使用as select ... ,因为在from子句中您只能指定本地表。联合表创建了到远程表的链接。

只需从远程表复制表定义即可。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...