如何使用CQL更新Cassandra中的列值?

t1qtbnec  于 2022-11-23  发布在  Cassandra
关注(0)|答案(2)|浏览(209)

我创建了一个有两个列字段的键空间。一个是Id,另一个是name。我在那个键空间中插入了记录。我想更新特定id的name字段。
我使用了以下CQL查询

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

在执行此查询时,它抛出异常

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

如果查询框是错误的手段,如何使用CQL更新记录?

pvcm50d1

pvcm50d11#

插入和更新需要指定行键,而您似乎正在尝试使用列名。在插入新的id、name对时使用了什么键?
请参阅[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定义并确定主键是什么。

2vuwiymt

2vuwiymt2#

您是否尝试过:UPDATE键空间名称/列错误名称SET名称='name' WHERE id =(不带'')

相关问题