Apache Зажечь несколько affinity_key в операторе создания - PullRequest
0 голосов
/ 02 апреля 2020

Привет, люди. Я хочу создать таблицу в apache, включив два внешних ключа (индекса запроса) в таблице. Ниже приведен запрос.

CREATE TABLE `users_roles` (
  `users_rolesId` bigint(20) unsigned NOT NULL,
  `userId` bigint(20) ,
  `roleId` bigint(20) ,
  `createdOn` timestamp ,
  `modifiedOn` timestamp,
  `createdBy` bigint(20),
  `modifiedBy` bigint(20),
  `isActive` bit(1) ,
  PRIMARY KEY (`users_rolesId`))WITH "backups=1,affinity_key=userId,affinity_key=roleId"

Но это дает мне исключение:

 SQL Error [1001] [42000]: Duplicate parameter: affinity_key=roleId

Так как указать несколько индексов запросов в операторах создания ??.

1 Ответ

2 голосов
/ 02 апреля 2020

Здесь две проблемы:

  1. Ключ сродства должен быть частью первичного ключа. В вашем случае столбцы сходства не являются частью первичного ключа (хотя они содержат одинаковые данные)
  2. В качестве столбца ключа сходства не может быть более одного столбца.

Определение сходства как данные распределяются между узлами. Вы не можете иметь два сходства одновременно, если у вас нет двух разных таблиц. Вам нужно будет выбрать тот, который более важен для вас, и распределить объединения по другому.

В вашем случае я рекомендую реплицировать таблицу ролей и привязать ключ привязки на role_id.

...