#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
предложении вы можете указать только локальную таблицу. Именно объединенная таблица создает ссылку на удаленную таблицу.
Просто скопируйте определение таблицы из удаленной таблицы.