暂无图片
GAUSS-01284:Cannot create index whose evaluation cannot be enforced to remote nodes SQLSTATE: 0A000
我来答
分享
SNAKE
2021-10-28
GAUSS-01284:Cannot create index whose evaluation cannot be enforced to remote nodes SQLSTATE: 0A000
主键约束中为什么必须要包含分布列
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
大威天龙

主键约束的本质就是一个非空约束加一个唯一约束,重点关注这个唯一约束(通过一个唯一索引实现)。

对于hash分布表,分布列决定了这条数据将在CN(CoordinateNode协调节点)被hash分布到哪个DN(DataNode数据节点)上,所以唯一约束本质上是确保分布到这个DN的数据的唯一性。如果允许唯一约束不包含分布列,那么就会出现在不同DN上查询到相同唯一键的情况,这肯定不是期望内的。

对于复制表(replicated table), 由于每个数据在每个DN上都被存有一份,所以不存在这个问题。

所以出现这个报错的时候要么使主键的定义包含分布列,要么改用复制表。

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏