0
我有一个卡桑德拉表看起来像:卡桑德拉更新 - 一些集群项丢失(时间戳)
CREATE TABLE messages (
user_id INT,
message_id INT,
received_timestamp TIMESTAMP,
status TEXT,
message TEXT,
PRIMARY KEY ((user_id, message_id),received_timestamp))
WITH CLUSTERING ORDER BY (received_timestamp DESC);
如果我尝试更新的行如:
UPDATE messages SET status = 'success' WHERE user_id = 1 AND message_id = 1;
我得到一个错误:
Some clustering keys are missing: received_timestamp
我明白,我需要包括received_timestamp,因为它是主键的一部分,但我只包括它在主键为订购目的。如果我不知道received_timestamp值,那么在这里没有办法执行更新吗?如果没有,是否有更好的方法来创建可能适用于此用例的表?提前致谢。
是USER_ID和MESSAGE_ID是每一个消息独特之处? –
@AshrafulIslam message_id是唯一的,但可能有多个消息为一个user_id – user172092
如果消息ID是唯一的,那么'received_timestamp'将如何根据时间戳排序消息?只有一个'received_timestamp'用于user_id和message_id –