是否可以使用 MergeTree 引擎更新 clickhouse 中的主键?

the*_*aba 3 clickhouse

我正在尝试更新简单表中的主键。

当我像这样执行查询时:

alter table test update id = 2 where id = 1;
Run Code Online (Sandbox Code Playgroud)

我看到消息:

Cannot UPDATE key column `id`
Run Code Online (Sandbox Code Playgroud)

有什么解决方法吗?

Iva*_*kov 6

不可以。作为解决方法,您需要将主键更改为不需要更新的不同列。这无法就地完成,因此您需要使用正确的主键创建新表,然后通过 INSERT+SELECT 或clickhouse-copier迁移数据。