如何在SNOWFLAKE中将已有列的值复制到新创建的列中
Snowflake数据库填充已有列值到新增列操作方案
首先确认新增的CompanyID列数据类型和OrderID列完全匹配,若还未创建该列,可执行以下语句完成列新增:
ALTER TABLE <替换为你的实际表名> ADD COLUMN CompanyID <替换为和OrderID一致的数据类型,如NUMBER(38,0)>;
创建完成后执行UPDATE语句完成全量值同步:
UPDATE <替换为你的实际表名> SET CompanyID = OrderID;
更新完成后可执行以下语句校验同步结果:
SELECT OrderID, CompanyID FROM <替换为你的实际表名> LIMIT 10;
注意事项
- 若你的表数据量较大,建议先执行小范围测试验证逻辑,确认无误后再执行全量更新,测试语句参考:
UPDATE <替换为你的实际表名> SET CompanyID = OrderID WHERE <替换为小范围筛选条件,如OrderID < 1000>; - 如果你需要CompanyID永久和OrderID值保持自动同步,无需手动维护,可以直接创建虚拟计算列,省去单独执行UPDATE的步骤,建列语句如下:
该方式创建的计算列不会额外占用存储,所有OrderID的新增、修改操作都会自动同步到CompanyID列。ALTER TABLE <替换为你的实际表名> ADD COLUMN CompanyID <替换为和OrderID一致的数据类型> AS (OrderID);

内容的提问来源于stack exchange,提问作者SMR
相关产品推荐
相关产品推荐

