我正在尝试使用create查询创建cluster列
CREATE TABLE videos_by_tag (
tag text,
video_id uuid,
added_date timestamp,
title text,
PRIMARY KEY ((tag), added_date, video_id)
) WITH CLUSTERING ORDER BY(added_date DESC);
它显示了以下错误。我在create表中遗漏了什么吗?
invalidrequest:来自服务器的错误:code=2200[invalid query]message=“群集键列必须与群集顺序中的列完全匹配”
只有当我包含主键中提到的所有集群列(在本例中添加了\u date、video\u id)时,它才起作用。是否必须按聚类顺序包含主键中的所有列?
CREATE TABLE videos_by_tag (
tag text,
video_id uuid,
added_date timestamp,
title text,
PRIMARY KEY ((tag), added_date, video_id)
) WITH CLUSTERING ORDER BY(added_date DESC,video_id ASC);
我在mac os上使用以下版本的cassandra
[cqlsh 5.0.1 | cassandra 4.0.0.680 | cql规范3.4.5
只有当我包含主键中提到的所有集群列(在本例中添加了\u date、video\u id)时,它才起作用。是否必须按聚类顺序包含主键中的所有列?
1条答案
按热度按时间6mw9ycah1#
看来这个问题也被贴在了网上https://community.datastax.com/questions/4118/ 我把答案贴在这里。
是的,必须指定
CLUSTERING ORDER BY
datastax enterprise 6.8.0中的指令。的逻辑CREATE TABLE
在apache cassandra 4.0-alpha1(cassandra-13426)中更改,但在c*4.0-alpha4(cassandra-15271)中恢复。以前的[公认的]行为将包含在dse 6.8的未来版本中。干杯!