如何在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
相关产品推荐
相关产品推荐

