如何从 cassandra 获取下一个 id table

How to get next id from cassandra table

我需要将下一个增量 ID 插入 table 尝试使用语法 mysql.

INSERT INTO demo.log ( id, transaction_type , transaction_time, transaction_data, session_id ) VALUES ( select max(id)+1 from demo.log ,'master' ,'2017-05-27 14:30:54.234' ,'1›6378925487955990›1›0›251›96544›/Date(1474519292176+0800)/›200›3›1›0' ,'789789d7f9-k97f8gh9f8f-001' );

错误:

SyntaxException: line 1:117 no viable alternative at input 'select' (..., session_id ) VALUES ( [(]select...)

你不能那样做(子查询),没有支持它的功能,也不会支持它。你可以用计数器或 LWT 做这样的事情,但这是一个非常糟糕的主意。

我建议您使用类型 1 或类型 4 uuid 作为 id(将类型设置为 timeuuid 或 uuid)。在分布式系统中,像这样以原子方式递增的东西非常昂贵且复杂。