Как обновить значение столбца в Cassandra с помощью CQL?

Я создал пространство ключей с двумя полями столбца. Один - это идентификатор, а другой - имя. Я вставил записи в это пространство ключей. Я хочу обновить имя определенного идентификатора.

Я использовал следующий запрос CQL

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

При выполнении этого запроса выдается исключение

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

Если запрос оформлен неправильно, значит, как обновить запись с помощью CQL?


person Anand Murugan    schedule 16.01.2013    source источник
comment
Имейте в виду, что CQL гораздо более ограничен, чем SQL. Не совсем уверен в вашей проблеме, но сообщение об ошибке предполагает, что «id» не является ключом или псевдонимом ключа (см. 1). Поскольку id является столбцом, а не (частью) ключа строки, я предполагаю, что эта операция просто невозможна с Cassandra.   -  person akaIDIOT    schedule 16.01.2013
comment
Можете ли вы опубликовать свое определение CF?   -  person rs_atl    schedule 17.01.2013


Ответы (2)


Вы пробовали: UPDATE keyspaceName/columnFalmilyName SET name='name' WHERE id = (без '')

person John    schedule 03.06.2020

Вставки и обновления требуют указания ключа строки, тогда как вы, похоже, пытаетесь использовать имя столбца. Какой ключ вы использовали при вставке новых пар идентификаторов и имен?

См. документацию по CQL на [http://cassandra.apache.org/doc/cql3/CQL.html][1].

<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 и посмотреть, каков ваш первичный ключ.

person NG Algo    schedule 18.01.2013
comment
Было бы полезно, если бы вы предоставили пример вместо формулы - person Orar; 25.05.2018