2017-01-23 126 views
1

我有两个表,一个是用户,另一个是expired_users。Cassandra:使用一个查询的输出作为另一个查询的输入

用户columns-> ID,姓名,年龄 expired_users列 - > ID,名称

我想请执行以下查询。

从用户中删除其中的id(select id from expired_users);

此查询适用于SQL相关数据库。我想找到解决方案来解决cassandra中的这个问题。

PS:我不想在表中添加任何额外的列。

回答

2

在设计cassandra数据模型时,我们不能完全像RDBMS那样思考。 设计这样的 -

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

你想要使用连接作为你的删除语句的过滤器,这不是Cassandra模型的目的。

AFAIK没有办法使用cql来执行此操作。如果您想在不更改模式的情况下执行此操作,请使用任何具有Cassandra驱动程序的语言运行外部脚本。

相关问题