如何在clickhouse中自动递增?

4uqofj5v  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(2)|浏览(1506)

我希望列在每次插入时都具有唯一的值。在sql中,我们可以使用autoincrement,在clickhouse中,我们可以使用autoincrement或其他类型的函数吗?我是新来clickhouse的,所以可能有一个术语错误。

d4so4syb

d4so4syb1#

在clickhouse中没有什么比自动递增更棒的了。
如果需要唯一值,请使用uuid。对于分布式系统来说,它比自动递增的值工作得更好
所以您可以简单地生成随机uint64并将其转换为uuid

SELECT toUUID(rand64());

使用insert时,它看起来与此类似

INSERT INTO t VALUES (toUUID(rand64()), ...);
kmynzznz

kmynzznz2#

clickhouse中没有服务器提供的自动增量。
如其他答案所述,uuid是一条出路。
相反,请使用generateuidv4()(请参阅此处的文档)
样本输出

SELECT generateUUIDv4();

插入时使用

INSERT INTO t VALUES (generateUUIDv4(), ...);

相关问题