首页 > 解决方案 > 雪花 - 将序列添加到现有列

问题描述

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

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

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

干杯

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

解决方案


您需要创建一个 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 时,您需要设置“下一个值”,因为以后无法更改它。


推荐阅读