【问题标题】:Copy Column Data - Azure Table Storage复制列数据 - Azure 表存储
【发布时间】:2012-03-01 14:19:01
【问题描述】:

因此,Azure 表存储的TableServiceEntity class 具有三个默认成员属性,其中之一是时间戳。发布到生产环境后,我们现在意识到我们需要一个 CreatedDateTime 属性而不是 Timestamp b/c 我们无法控制 Timestamp 值,它更像是“Last Modified”值而不是“Created Date”值。

如何将当前时间戳中的值复制到我的新属性中?在 SQL 中,这似乎很简单,但云是另一种动物。谢谢。

【问题讨论】:

    标签: azure azure-table-storage


    【解决方案1】:

    在表存储中,您没有架构。在单个“表”中,您可以有 10 行具有 C# 定义的 Person 类和 10 行具有完全不同属性的 Dog 类。

    我这么说的原因是因为没有架构,所以最简单的做法是将行作为批处理“重新插入”,并将新列/属性添加到类中。您也可以执行 UPSERT:

    http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/windows-azure-tables-introducing-upsert-and-query-projection.aspx

    如果该列已经定义,那么它很容易,您只需进行更新,但听起来新列在之前输入的行中不存在。

    【讨论】:

    • 更新!我认为这个文档很好地说明了它。谢谢。
    • 为了帮助其他人,如果您决定在保存时使用 BatchMode,那么只需确保您在 Azure 表存储中保存回相同的 PartitionKey,否则您会遇到异常。跨度>
    【解决方案2】:

    如果您使用的是类,只需为创建日期时间添加新字段。拉下所有数据并将时间戳复制到新字段,然后在该行上调用更新。如果您已经在进行插入、删除和thigns,应该非常简单。

    【讨论】:

    • 这也是我考虑过的编码过程,但我正在寻找确认和具体的代码示例。你们都确认并回答了我的问题,所以谢谢。
    猜你喜欢
    • 2017-08-12
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 2022-10-24
    • 2018-04-04
    • 2021-10-21
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多