聚集键列必须与按指令聚集顺序的列完全匹配

uxh89sit  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(396)

我正在尝试使用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)时,它才起作用。是否必须按聚类顺序包含主键中的所有列?

6mw9ycah

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的未来版本中。干杯!

相关问题