1

2 つの列フィールドを持つキースペースを作成しました。1 つは Id で、もう 1 つは名前です。そのキースペースにレコードを挿入しました。特定のIDの名前フィールドを更新したい。

次のCQLクエリを使用しました

UPDATE keyspaceName/columnFalmilyName SET name='name' WHERE id = 'id' 

このクエリを実行すると、例外がスローされます

InvalidRequestException(why:line 1:56 mismatched input 'id' expecting K_KEY)...

フレーム化されたクエリが間違っている場合、CQL を使用してレコードを更新する方法は?

4

2 に答える 2

0

挿入と更新には行キーを指定する必要がありますが、列名を使用しようとしているようです。新しい ID と名前のペアを挿入するときに使用したキーは何ですか?

[http://cassandra.apache.org/doc/cql3/CQL.html][1] の CQL ドキュメントを参照してください。

<update-stmt> ::= UPDATE <tablename>
                  ( USING <option> ( AND <option> )* )?
                  SET <assignment> ( ',' <assignment> )*
                  WHERE <where-clause>
The UPDATE statement writes one or more columns for a given row in a table. The 
<where-clause> is used to select the row to update and must include all columns 
composing the PRIMARY KEY. Other columns values are specified through <assignment> 
after the SET keyword.

ColumnFamily の定義を見て、主キーが何であるかを確認する必要があります。

于 2013-01-18T23:09:23.470 に答える
0

試しましたか: UPDATE keyspaceName/columnFalmilyName SET name='name' WHERE id = ('' なし)

于 2020-06-03T15:03:34.770 に答える