我希望列在每次插入时都具有唯一的值。在sql中,我们可以使用autoincrement,在clickhouse中,我们可以使用autoincrement或其他类型的函数吗?我是新来clickhouse的,所以可能有一个术语错误。
d4so4syb1#
在clickhouse中没有什么比自动递增更棒的了。如果需要唯一值,请使用uuid。对于分布式系统来说,它比自动递增的值工作得更好所以您可以简单地生成随机uint64并将其转换为uuid
SELECT toUUID(rand64());
使用insert时,它看起来与此类似
INSERT INTO t VALUES (toUUID(rand64()), ...);
kmynzznz2#
clickhouse中没有服务器提供的自动增量。如其他答案所述,uuid是一条出路。相反,请使用generateuidv4()(请参阅此处的文档)样本输出
SELECT generateUUIDv4();
插入时使用
INSERT INTO t VALUES (generateUUIDv4(), ...);
2条答案
按热度按时间d4so4syb1#
在clickhouse中没有什么比自动递增更棒的了。
如果需要唯一值,请使用uuid。对于分布式系统来说,它比自动递增的值工作得更好
所以您可以简单地生成随机uint64并将其转换为uuid
使用insert时,它看起来与此类似
kmynzznz2#
clickhouse中没有服务器提供的自动增量。
如其他答案所述,uuid是一条出路。
相反,请使用generateuidv4()(请参阅此处的文档)
样本输出
插入时使用