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 不支持任何类型的基于触发器的默认值 - 只能使用简单的默认值。
我建议使用视图来添加条件列。
是否可以通过条件表达式来定义列?并在插入时 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 不支持任何类型的基于触发器的默认值 - 只能使用简单的默认值。
我建议使用视图来添加条件列。