我希望一列在每次插入时都有唯一的值。在 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)
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)