【问题标题】:Snowflake - add sequence to an existing column雪花 - 将序列添加到现有列
【发布时间】:2020-03-30 12:57:30
【问题描述】:

我必须将 SQL 服务器数据库迁移到 Snowflake,我的大多数维度表都有一个身份列作为 PK,然后跨多个事实表引用这些列。

我计划在雪花中复制这些表,但是我需要先插入现有数据(因此标识值保持不变),然后更改我的表以将序列添加到我的 PK,序列将从较高的开始值 + 1。

我有点卡住,因为似乎无法更改现有列并向其添加序列,是否有任何解决方法或我应该遵循的最佳实践?

干杯

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    您需要创建一个 SEQUENCE,然后在使用 SEQUENCE 作为主键的默认值创建表时引用它。这是在此处的文档中:

    https://docs.snowflake.net/manuals/sql-reference/sql/create-sequence.html https://docs.snowflake.net/manuals/sql-reference/sql/create-table.html#optional-parameters

    然后使用为该列指定的数据加载您的数据,以便它填充当前值。您需要在创建 SEQUENCE 时设置“下一个值”,因为您以后无法更改它。

    【讨论】:

    • 它就像一个魅力!由于序列不是实际的标识列,因此您实际上可以将值强制输入其中。非常感谢。
    猜你喜欢
    • 2021-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多