You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform中为Snowflake表通过表达式创建计算列

正确的计算列表达式写法

要让C3成为C1和C2的和,你需要把expression设置为纯SQL字符串形式的计算逻辑,不需要用Terraform的资源引用或者列表语法。修正后的column块如下:

column {
  name     = "C3"
  type     = "NUMBER(38,0)"
  default {
    expression = "C1 + C2"
  }
}

为什么之前的写法不对?

  • ["C1"]+["C2"]:这是Terraform的列表拼接语法,会生成字符串列表,不符合Snowflake需要的SQL表达式格式。
  • snowflake_table.table.C1这类写法:Terraform的资源引用是用来获取资源属性(比如表名、数据库名)的,但计算列的表达式是直接在Snowflake中执行的SQL逻辑,不需要通过Terraform引用列名,直接写列的字符串名称即可。

完整的修正后代码:

resource "snowflake_table" "table" {
  database            = snowflake_database.db.name
  schema              = snowflake_schema.schema.name
  name                = "RAWTABLE"
    
  column {
    name     = "C1"
    type     = "NUMBER(38,0)"
  }

  column {
    name     = "C2"
    type     = "NUMBER(38,0)"
  }

  column {
    name     = "C3"
    type     = "NUMBER(38,0)"
    default {
      expression = "C1 + C2"
    }
  }
}

内容的提问来源于stack exchange,提问作者Sushma Magesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:00:00