将 InnoDB table 复制到 FEDERATED table
Replicate an InnoDB table into a FEDERATED table
我想要一个新的 table 与 FEDERATED 引擎,从另一个现有的 InnoDB table 创建(克隆)。像这样:
CREATE TABLE balance_live
AS SELECT * FROM balance
ENGINE=FEDERATED
CONNECTION='mysql://user:pass@8.8.8.8:3306/db/balance'
但是由于某些原因这不起作用。
您需要明确指定的实际 table 定义。这不是视图,而是 table。请参阅此处了解正确的语法:
https://dev.mysql.com/doc/refman/8.0/en/federated-create-connection.html
在远程主机上执行 SHOW CREATE TABLE balance;
并将其用作定义,只需更改 ENGINE=FEDERATED
并添加 CONNECTION 子句。
正如 creating federated tables 上的 mysql 手册所说:
Create the table on the local server with an identical table definition, but adding the connection information that links the local table to the remote table.
您不能使用 as select ...
,因为在 from
子句中您只能指定本地 table。联合 table 为远程 table 创建了 link。
只需从远程 table 复制 table 定义即可。
我想要一个新的 table 与 FEDERATED 引擎,从另一个现有的 InnoDB table 创建(克隆)。像这样:
CREATE TABLE balance_live
AS SELECT * FROM balance
ENGINE=FEDERATED
CONNECTION='mysql://user:pass@8.8.8.8:3306/db/balance'
但是由于某些原因这不起作用。
您需要明确指定的实际 table 定义。这不是视图,而是 table。请参阅此处了解正确的语法: https://dev.mysql.com/doc/refman/8.0/en/federated-create-connection.html
在远程主机上执行 SHOW CREATE TABLE balance;
并将其用作定义,只需更改 ENGINE=FEDERATED
并添加 CONNECTION 子句。
正如 creating federated tables 上的 mysql 手册所说:
Create the table on the local server with an identical table definition, but adding the connection information that links the local table to the remote table.
您不能使用 as select ...
,因为在 from
子句中您只能指定本地 table。联合 table 为远程 table 创建了 link。
只需从远程 table 复制 table 定义即可。