我想要一个带有 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 子句。
正如关于创建联合表的 mysql 手册所说:
在本地服务器上创建具有相同表定义的表,但添加将本地表链接到远程表的连接信息。
您不能使用as select ...
, 因为在from
子句中您只能指定一个本地表。是联合表创建到远程表的链接。
只需从远程表中复制表定义。