2017-06-01 3 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でこのようなことをすることはできますが、それは本当に悪い考えです。

id(タイプをtimeuuidまたはuuidに設定する)には、タイプ1またはタイプ4のuuidsを使用することをお勧めします。分散システムでは、このようなものを原子的に増分すると、ひどく高価で複雑になります。

関連する問題