У меня есть следующая структура таблицы в Кассандре:Обновления Таблица В Кассандре
CREATE TABLE ssession (
sessionid text PRIMARY KEY,
session_start_time timestamp,
updated_time timestamp
);
session_start_time
время, когда конкретный сеанс становится активным и update_time
время до пользователя будет делать некоторые activity.Here, sessionid
session_start_time
и будет вставлен один раз, и updated_time
будет обновляться по мере того, как пользователь будет активен.
I want to include only sessionid as the primary key
.
Нормальный оператор обновления будет:
UPDATE ssession SET session_start_time = '2015-07-31 10:43:13+0530',
updated_time = '2015-07-31 10:43:13+0530' WHERE sessionid = '22_865624098';
Здесь первый раз, когда я буду вставлять же session_start_time
updated_time
и .Но с следующий раз я должен буду обновлять только updated_time
.
И мне нужен один запрос, чтобы сделать это. Поскольку я буду получать данные непрерывно (используя шторм для обработки данных).
Есть ли способ достичь этого?
В качестве альтернативы вы можете кэшировать локально, какие учетные записи вы вставили, и предоставить session_start_time, когда он не был вставлен ранее. Если его нет в кеше, вы можете посмотреть его из кассандры и отреагировать, есть ли там запись. –
Спасибо человек. Я думал сделать что-то подобное. 'if UPDATE ssession set updated_time = '2015-07-31 10: 43: 14 + 0531' where sessionid = '22_865624098' IF sessionid = 'some-value'; еще ОБНОВЛЕНИЕ ssession SET session_start_time = '2015-07-31 10: 43: 13 + 0530', updated_time = '2015-07-31 10: 43: 13 + 0530' ГДЕ SessionID = '22_865624098'; ' Возможно ли это? –
Это не работает как 'PRIMARY KEY column 'sessionid' не может иметь условия IF' –