Apache点燃create语句中的多个finity_key

问题描述 投票:0回答:1

嗨,我想在apache ignite中创建一个表,该表中有两个外键(查询索引)。下面是查询。

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

所以如何在create语句中指定多个查询索引?。

ignite
1个回答
2
投票

这里有两个问题:

  1. 亲和力键必须是主键的一部分。就您而言,相似性列不是主键的一部分(尽管它们包含相同的数据)
  2. 您不能将多个列作为相似性键列。

亲和力确定如何在节点之间分配数据。除非有两个不同的表,否则不能一次拥有两个关联。您将必须选择对您更重要的一个,并对另一个进行分布式联接。

根据您的情况,我建议复制角色表并在role_id上删除关联键。

© www.soinside.com 2019 - 2024. All rights reserved.