生成列(Generated column)
生成列是一种特殊的列,总是由其他列计算生成。在 RisingWave 中,创建表或 source 时可以创建生成列。
要创建生成列,请在 CREATE TABLE
或 CREATE SOURCE
语句中使用 AS <generation_expression>
子句:
CREATE TABLE t1 (v1 int AS v2-1, v2 int, v3 int AS v2+1);
请注意,生成表达式不能引用另一个生成列。
表中的生成列与 source 中的生成列略有不同。
表中的生成列存储在创建的表中,并在插入时进行计算。这相当于 PostgreSQL 中的
STORED
类型生成列。如果表包含生成列,则无法在 RisingWave 中更新或删除表。source 中的生成列不存储在创建的 source 中,并在查询 source 时计算。这相当于 PostgreSQL 中的
VIRTUAL
类型生成列。