gpt4 book ai didi

Azure 表存储 - 删除列

转载 作者:行者123 更新时间:2023-12-02 06:31:17 25 4
gpt4 key购买 nike

我认为这是不可能的,但无论我问什么问题,也许我错过了一些东西。

我们可以在 Azure 表中添加/删除列吗?

例如,默认情况下我们获取这些列:PartitionKey、RowKey、Timestamp、ETag。例如,我可以添加另外 3 个列:名字、姓氏、电子邮件列吗?

之后,我将插入一些值,并且我想删除“电子邮件”列并添加“地址”列。我们可以这样做吗?

最佳答案

正如 Igor 所说,Azure Tables 没有行和列的概念。一个表可以包含零个或多个实体,每个实体最多可以有 255 个属性(属性是名称/值/类型)。在这 255 个属性中,其中 3 个是系统属性(PartitionKey、RowKey 和 Timestamp),您无法通过代码更新它们。创建实体时,您定义 PartitionKey 和 RowKey,之后它们将成为只读属性。因此,当涉及到更新实体时,您只能更新 252 个属性。

要管理 Azure 表中的数据,可以使用 REST API,并且可以在请求正文中提供实体的属性。 Azure 存储提供了两种更新实体的方法 - UpdateMerge .

当您告诉 Azure 表服务更新实体时,它只是删除该实体的所有现有属性,并插入请求负载中定义的属性。

当您告诉 Azure 表服务合并实体时,它会查看现有实体属性并将它们与请求负载中定义的属性进行比较。如果它找到匹配的属性,它只会更新这些属性。如果现有实体中不存在这些属性,但在请求负载中定义了这些属性,则这些属性将添加到实体中。如果该属性存在于现有实体中但未在请求负载中定义,则它们不会更改。

现在来解决你的问题。

假设您已经有一个刚刚定义了 PartitionKeyRowKey 的实体。现在您要添加 FirstNameLastNameEmail 属性。由于实体中不存在这些属性,因此您可以使用 MergeReplace 来更新实体,这些属性将添加到实体中。

现在您想要从实体中删除 Email 属性,而是向该实体添加 Address 属性。您要做的就是对该实体执行 Update 操作,您的请求正文将包含 FirstNameLastNameAddress > 仅属性(无 Email 属性)。当您使用此请求负载更新实体时,Email 属性将从实体中删除。

关于Azure 表存储 - 删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35688513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com