Skip to main content

生成列(Generated column)

生成列是一种特殊的列,总是由其他列计算生成。在 RisingWave 中,创建表或 source 时可以创建生成列。

要创建生成列,请在 CREATE TABLECREATE 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 类型生成列。