AWS Redshift - 将列定义为条件?

AWS Redshift - Define column as a conditional?

是否可以通过条件表达式来定义列?并在插入时 evaluated/populated。

示例:

CREATE TABLE "time_of_year"
(
    "year" (smallint)
    ,"month" (smallint)
    ,"season" (conditional {case expression} )
)
;

case 语句为:

CASE "month"
WHEN "month" in (12,1,2) THEN 'winter'
WHEN "month" in (3,4,5) THEN 'spring'
WHEN "month" in (6,7,8) THEN 'summer'
ELSE 'fall'
END

如果随后插入年 = 2016 年和月 = 5 的记录,则季节将自动填充 'spring'

这在 Redshift 中可行吗?

不,Redshift 不支持任何类型的基于触发器的默认值 - 只能使用简单的默认值。

我建议使用视图来添加条件列。