snowflake-cloud-data-platform - 雪花 - 将序列添加到现有列
问题描述
我必须将 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 时,您需要设置“下一个值”,因为以后无法更改它。
推荐阅读
- node.js - 如何正确验证nodeJS rest api中的对象ID数组
- r - R中的ggplot2:计算百分比并制作可能是geom_area图的图形
- html - 如何在嵌套的 div 中对齐 h2?
- amazon-web-services - dynamoDB 的项目是否可立即查询?
- cookies - 将对象传递给赛普拉斯 cy.setcookie() 命令
- flutter - 在 Flutter 中滚动时隐藏键盘
- entity-framework - 具有身份数据库上下文的实体框架核心迁移
- java - 如何在 JdbcTemplate 中使用 fetch size 来处理 20+ 百万行?
- javascript - 为什么我的计算属性在 Object.assign 之后无效?
- django - Dispatching requests from one uwsgi to another uwsgi instance running Django Channels