我有两个表,一个是用户,另一个是expired_users。
用户列 - >身份证,姓名,年龄 expired_users列 - > id,name
我想执行以下查询。
从id为的用户中删除(从expired_users中选择id);
此查询适用于SQL相关数据库。我想在cassandra中找到解决这个问题的解决方案。
PS:我不想在表格中添加任何额外的列。
答案 0 :(得分:2)
在设计cassandra数据模型时,我们不能完全像RDBMS那样思考。 像这样的设计 -
baselineOffset
将用户标记为已过期 - 只需再次插入相同的行
create table users (
id int,
name text,
age int,
expired boolean static,
primary key (id,name)
);
您不必更新或删除该行,只需再次插入,之前的列值就会被覆盖。
答案 1 :(得分:1)
你想要的是使用join作为你的delete语句的过滤器,而这不是为Cassandra模型构建的。
AFAIK无法使用cql执行此操作。如果要在不更改架构的情况下执行此操作,请使用任何具有Cassandra驱动程序的语言运行外部脚本。