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 –