跳到主要内容
跳到主要内容

更新变更

更新变更是指通过更新操作来操纵表数据的 ALTER 查询。最显著的例如 ALTER TABLE UPDATE 等。执行这样的查询会生成数据部分的新变异版本。这意味着,此类语句会触发对所有在变更之前插入的数据的整个数据部分的重写,从而导致大量的写请求。

信息

对于更新,可以通过使用专门的表引擎,例如 ReplacingMergeTreeCollapsingMergeTree,来避免这些大量的写请求,而不是使用默认的 MergeTree 表引擎。

ALTER TABLE ... 更新语句

操作符合指定过滤表达式的数据。实现为 mutation

备注

ALTER TABLE 前缀使得该语法与大多数支持 SQL 的其他系统不同。它意在表明,与 OLTP 数据库中的类似查询不同,这是一项重操作,不适合频繁使用。

filter_expr 必须为 UInt8 类型。该查询将指定列的值更新为对应表达式在 filter_expr 取非零值的行中的值。值通过 CAST 运算符转换为列类型。不支持对用于计算主键或分区键的列进行更新。

一个查询可以包含多个用逗号分隔的命令。

查询处理的同步性由 mutations_sync 设置定义。默认情况下,它是异步的。

另见