2017-01-23 19 views
1

У меня есть две таблицы, одна из которых является пользователями, а другая - expired_users.Cassandra: Использование вывода одного запроса в качестве входного сигнала для другого запроса

пользователи columns-> идентификатор, имя, возраст expired_users столбцы -> идентификатор, имя

Я хочу, чтобы выполнить следующий запрос.

удалить из пользователей, где id (выбрать id из expired_users);

Этот запрос отлично работает с базами данных, связанными с SQL. Я хочу найти решение для решения этой проблемы в cassandra.

PS: Я не хочу добавлять дополнительные столбцы в таблицы.

ответ

2

При разработке модели данных cassandra мы не можем думать точно, как РСУБД. Дизайн, как это -

create table users (
id int, 
name text, 
age int, 
expired boolean static, 
primary key (id,name) 
); 

Чтобы пометить пользователя, как истек - Просто вставьте ту же строку снова

insert into users (id,name,age,expired) values (100,'xyz',80,true); 

вам не нужно обновить или удалить строку, просто вставьте его снова , предыдущие значения столбцов будут переопределены.

+0

Это не решает мою цель. Я не могу изменить существующую структуру таблицы. –

+0

@Bhanu Boppana Было бы лучше, если вы добавите задание на стол, о котором идет речь. – Gunwant

+0

Я добавил столбцы, которые у меня есть в моих таблицах в вопросе. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. –

1

Что вы хотите использовать как фильтр для своего оператора delete, и это не то, для чего построена модель Cassandra.

AFAIK нет возможности выполнить это с использованием cql. Если вы хотите выполнить это действие, не меняя внешний сценарий схемы на любом языке с драйверами для Cassandra.