2017-06-01 29 views
0

我是casandra的新手,我需要在表中插入下一個增量id 試圖使用mysql的語法。如何從casandra trable獲取下一個ID

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...) 
+0

你不能在CQL中做子選擇。而[集成函數中的內建函數](http://docs.datastax.com/en/cql/3.3/cql/cql_using/useQueryStdAggregate.html)只能對分區鍵進行操作。 – Ralf

回答

2

你不能做到這一點(子查詢),毫無特色,以支持它,它也不會得到支持。你可以使用計數器或LWT這樣的工作,但這是一個非常糟糕的主意。

我會建議你使用類型1或4 uuids的id(設置類型爲timeuuid或uuid)。在分佈式系統中,自動增加這樣的東西非常昂貴且複雜。