【问题标题】:How to create a unique key for a column in a Cosmos DB collection?如何为 Cosmos DB 集合中的列创建唯一键?
【发布时间】:2022-01-13 06:33:26
【问题描述】:

我读过这篇文章,但这里只写了每个分区的唯一键:https://docs.microsoft.com/en-us/azure/cosmos-db/unique-keys

在上面的链接中给出,不能为容器中的现有集合创建唯一键。

有人可以建议为容器中的现有集合创建唯一索引的解决方案吗?

【问题讨论】:

    标签: azure-cosmosdb azure-cosmosdb-sqlapi unique-key


    【解决方案1】:

    唯一键是对容器中的值进行逻辑分区的东西。在共享文档中已经提到,唯一键只能在创建 Azure Cosmos 容器时创建,因为唯一键策略定义了容器的结构(可以说是 Schema),防止之后出现任何重复条目。

    现在,假设如果有人想在容器中创建新的唯一键,它可能会与现有的唯一键发生冲突,因此需要重新设计完整的结构。因此,不支持在现有容器中更改和添加新的唯一键。

    实现要求的可能解决方法是:

    要为现有容器设置唯一键,请创建一个新容器 具有唯一键约束。使用适当的数据迁移 将数据从现有容器移动到新容器的工具 容器。对于 SQL 容器,使用数据迁移工具移动 数据。对于 MongoDB 容器,使用 mongoimport.exe 或 mongorestore.exe 移动数据。

    其他可能的方法是以编程方式实现逻辑,以在将值插入 Cosmos DB 之前检查任何列的元素的唯一性。您可以尝试pre-triggers 来实施检查。

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 1970-01-01
      • 2021-12-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 2018-06-02
      相关资源
      最近更新 更多