Apache Ignite create语句中的多个affinity_键

Apache Ignite create语句中的多个affinity_键,ignite,Ignite,大家好,我想在ApacheIgnite中创建一个表,表中有两个外键(查询索引) CREATE TABLE `users_roles` ( `users_rolesId` bigint(20) unsigned NOT NULL, `userId` bigint(20) , `roleId` bigint(20) , `createdOn` timestamp , `modifiedOn` timestamp, `createdBy` bigint(20), `modi

大家好,我想在ApacheIgnite中创建一个表,表中有两个外键(查询索引)

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语句中指定多个查询索引呢?

这里有两个问题:

  • 关联密钥需要是主键的一部分。在您的情况下,关联列不是主键的一部分(尽管它们包含相同的数据)
  • 不能将多个列作为关联键列
  • 关联性确定数据在节点之间的分布方式。除非有两个不同的表,否则不能同时有两个相似性。您必须选择一个对您更重要的连接,并对另一个进行分布式连接

    在您的情况下,我建议复制角色表并删除
    role\u id

    上的关联键这里有两个问题:

  • 关联密钥需要是主键的一部分。在您的情况下,关联列不是主键的一部分(尽管它们包含相同的数据)
  • 不能将多个列作为关联键列
  • 关联性确定数据在节点之间的分布方式。除非有两个不同的表,否则不能同时有两个相似性。您必须选择一个对您更重要的连接,并对另一个进行分布式连接

    在您的情况下,我建议复制角色表并删除
    role\u id
    上的关联键