com.datastax.driver.core.exceptions.InvalidQueryException:在SET部分中找到的PRIMARY KEY部分序列

时间:2014-11-22 05:05:22

标签: cassandra cql

我正在尝试更新表格,然后我得到了这个例外:

  

com.datastax.driver.core.exceptions.InvalidQueryException:在SET部分中找到的PRIMARY KEY部分序列。

我的表结构是

CREATE TABLE IF NOT EXISTS STYLINGBEE.LKPSTYLES(
    STYLEID ASCII,
    NAME ASCII,
    IMAGE ASCII,
    SEQUENCE INT,
    ACTIVE BOOLEAN,
    PRIMARY KEY (STYLEID,SEQUENCE)
)WITH CLUSTERING ORDER BY (SEQUENCE DESC);

3 个答案:

答案 0 :(得分:7)

虽然完整查询会有所帮助,但我可以从错误消息中判断您正在尝试UPDATEPRIMARY KEY。来自DataStax documentation on the UPDATE command

The UPDATE SET operation is not valid on a primary key field.

这就是您收到此特定错误消息的原因。如果您插入了包含需要更新的主键部分的行,则必须删除该行并重新插入。

答案 1 :(得分:3)

Cassandra不允许您更新主键。 你不能做类似下面的事情,因为SEQUENCE是主键的一部分。

UPDATE STYLINGBEE.LKPSTYLES SET SEQUENCE = 1 WHERE STYLEID = 1000;

答案 2 :(得分:1)

看起来您正在尝试更新某些行而不在查询中指定STYLEID(WHERE部分)。你能发布你的CQL语句吗? 我认为这一个链接可以帮助您:Why doesn't my Cassandra update work?