Будет ли таблица с составными первичными ключами поддерживать групповую репликацию в innodb - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть таблица с двумя столбцами col1, col2, которые являются составными первичными ключами.Будет ли эта таблица поддерживать групповую репликацию в кластеризации Myno InnoDB?

Сообщение об ошибке:

org.springframework.jdbc.UncategorizedSQLException: сброс Hibernate: не удалось выполнитьПакетное обновление JDBC;некатегоризованное исключение SQLException для SQL [/ * вставить строку коллекции com.domain.BatchClass.documentTypes * / вставить в значения batch_class_document_type (batch_class_id, document_type_id) (?,?)];Состояние SQL [HY000];код ошибки [3098];Таблица не соответствует требованиям внешнего плагина .;вложенное исключение:

ПОКАЗАТЬ СОЗДАТЬ ТАБЛИЦУ:

CREATE TABLE `batch_class_document_type` (
    `batch_class_id` bigint(20) NOT NULL, 
    `document_type_id` bigint(20) NOT NULL, 
    PRIMARY KEY (`batch_class_id`,`document_type_id`), 
    KEY `FKB72AFCD2997AC796` (`document_type_id`), 
    KEY `FKB72AFCD2C473EFCA` (`batch_class_id`), 
    CONSTRAINT `FKB72AFCD2997AC796` FOREIGN KEY (`document_type_id`)
                 REFERENCES `document_type` (`id`), 
    CONSTRAINT `FKB72AFCD2C473EFCA` FOREIGN KEY (`batch_class_id`)
                 REFERENCES `batch_class` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 Ответ

0 голосов
/ 21 февраля 2019

У вас ошибка при обновлении, а не при создании таблицы, верно?

вставить в batch_class_document_type (batch_class_id, document_type_id) значения (?,?)

Я предполагаю, что вы управляете своей группой в режиме нескольких основных пользователей и как указано здесь:

https://dev.mysql.com/doc/refman/5.7/en/group-replication-deploying-in-multi-primary-or-single-primary-mode.html

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

Вы попали в это ограничение.Я предлагаю попробовать запустить его в режиме Single Primary.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...