ClickHouse如何实现自动增量?

Ank*_*eja 10 sql clickhouse

我希望一列在每次插入时都有唯一的值。在 SQL 中,我们可以使用自动增量来实现此功能,在 Clickhouse 中,我们可以使用自动增量或任何其他类型等任何类型来实现此功能吗?我是 Clickhouse 的新手,因此可能存在术语错误。

Sil*_*sen 10

ClickHouse 中没有服务器提供的自动增量。

正如其他答案所述,UUID 是可行的方法。

相反,使用generateUUIDv4() (请参阅此处的 文档)

样本输出

SELECT generateUUIDv4();
Run Code Online (Sandbox Code Playgroud)

插入时使用

INSERT INTO t VALUES (generateUUIDv4(), ...);
Run Code Online (Sandbox Code Playgroud)


sim*_*Pod 7

ClickHouse 中没有什么比自动增量更好的了。

如果您需要唯一值,请使用 UUID。它对于分布式系统来说比自动递增值要好得多

所以你可以简单地生成随机Uint64并将其转换为UUID

SELECT toUUID(rand64());
Run Code Online (Sandbox Code Playgroud)

使用插入,它看起来类似于这样

INSERT INTO t VALUES (toUUID(rand64()), ...);
Run Code Online (Sandbox Code Playgroud)