Репликация таблицы InnoDB в ОБЪЕДИНЕННУЮ таблицу

#mysql #sql #innodb #federated

#mysql #sql #innodb #объединенный

Вопрос:

Я хотел бы иметь новую таблицу с ОБЪЕДИНЕННЫМ механизмом, созданную (клонированную) из другой существующей таблицы InnoDB. Что-то вроде этого:

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

Но по какой-то причине это не работает.

Ответ №1:

Вам нужно фактическое определение таблицы, указанное явно. Это не представление, это таблица. Смотрите Здесь для правильного синтаксиса: https://dev.mysql.com/doc/refman/8.0/en/federated-create-connection.html

Сделайте SHOW CREATE TABLE balance; это на удаленном хосте и используйте это как определение, просто измените ENGINE=FEDERATED и добавьте предложение CONNECTION.

Комментарии:

1. SHOW CREATE TABLE balance; это было именно то, что мне было нужно! Спасибо!

Ответ №2:

Как говорится в руководстве mysql по созданию объединенных таблиц:

Создайте таблицу на локальном сервере с идентичным определением таблицы, но добавив информацию о соединении, которая связывает локальную таблицу с удаленной таблицей.

Вы не можете использовать as select ... , поскольку в from предложении вы можете указать только локальную таблицу. Именно объединенная таблица создает ссылку на удаленную таблицу.

Просто скопируйте определение таблицы из удаленной таблицы.