Cassandra com.datastax.driver.core.exceptions.InvalidQueryException:在集合部件中找到主键部件序列
我正在尝试更新表,然后出现以下异常: com.datastax.driver.core.exceptions.InvalidQueryException:在集合部件中找到主键部件序列 我的桌子结构是Cassandra com.datastax.driver.core.exceptions.InvalidQueryException:在集合部件中找到主键部件序列,cassandra,cql,Cassandra,Cql,我正在尝试更新表,然后出现以下异常: com.datastax.driver.core.exceptions.InvalidQueryException:在集合部件中找到主键部件序列 我的桌子结构是 CREATE TABLE IF NOT EXISTS STYLINGBEE.LKPSTYLES( STYLEID ASCII, NAME ASCII, IMAGE ASCII, SEQUENCE INT, ACTIVE BOOLEAN, PRIMARY
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);
虽然有完整的查询会有所帮助,但我可以从错误消息中看出,您正在尝试更新行的
主键。从:
这就是您收到此特定错误消息的原因。如果插入了包含需要更新的主键部分的行,则必须删除该行并重新插入。Cassandra不允许您更新主键。
您不能执行以下操作,因为序列是主键的一部分
更新StylengBee.LKPSTYLES SET SEQUENCE=1,其中STYLEID=1000 看起来您正在尝试更新查询中未指定STYLEID的某行(WHERE部分)。你能公布你的CQL声明吗。
我认为这一链接可以帮助您:奇怪,您是否创建了密钥空间?如果是,则使用该键空间,而不是StyleingBee.LKPSTYLES直接使用您的表名,这只是简单的猜测。不确定它是否有用。虽然是由不同的用户提交的,但这个问题与我30分钟前回答的这个问题在同一个模式上问的问题是相同的:如果没有被接受的或经过投票的答案,我不能将其标记为重复。是的,在这种情况下-这正是他收到的,我只是研究了一些变通办法。
The UPDATE SET operation is not valid on a primary key field.