【发布时间】:2015-04-18 09:11:45
【问题描述】:
我第一次在 Web 应用程序中使用 Cassandra,但遇到了查询问题。 这是我的标签:
CREATE TABLE vote (
doodle_id uuid,
user_id uuid,
schedule_id uuid,
vote int,
PRIMARY KEY ((doodle_id), user_id, schedule_id)
);
在每个请求中,我都会指明我的分区键 doodle_id。 例如,我可以毫无问题地制作:
select * from vote where doodle_id = c4778a27-f2ca-4c96-8669-15dcbd5d34a7 and user_id = 97a7378a-e1bb-4586-ada1-177016405142;
但在我提出的最后一个请求中:
select * from vote where doodle_id = c4778a27-f2ca-4c96-8669-15dcbd5d34a7 and schedule_id = c37df0ad-f61d-463e-bdcc-a97586bea633;
我收到以下错误:
Bad Request: PRIMARY KEY column "schedule_id" cannot be restricted (preceding column "user_id" is either not restricted or by a non-EQ relation)
我是 Cassandra 的新手,但如果我错了,请纠正我,在复合主键中,第一部分是 PARTITION KEY,它是强制允许 Cassandra 知道在哪里查找数据的。 然后其他部分是 CLUSTERING KEY 对数据进行排序。
但我仍然不明白为什么我的第一个请求有效,而第二个无效?
如果有人能提供帮助,那将是非常高兴的。
【问题讨论】: