我必须将 SQL 服务器数据库迁移到 Snowflake,我的大多数维度表都有一个身份列作为 PK,然后在多个事实表中引用这些列。
我计划在雪花中复制这些表,但是我需要先插入现有数据(因此标识值保持不变),然后更改我的表以向我的 PK 添加序列,序列将从较高的值 + 1 开始.
我有点卡住了,因为似乎无法更改现有列并向其添加序列,是否有任何解决方法或我应该遵循的最佳实践?
干杯
我必须将 SQL 服务器数据库迁移到 Snowflake,我的大多数维度表都有一个身份列作为 PK,然后在多个事实表中引用这些列。
我计划在雪花中复制这些表,但是我需要先插入现有数据(因此标识值保持不变),然后更改我的表以向我的 PK 添加序列,序列将从较高的值 + 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 时,您需要设置“下一个值”,因为以后无法更改它。