【发布时间】:2017-08-05 16:22:29
【问题描述】:
我有两个表,一个是 users,另一个是 expired_users。
用户列-> id、name、age expired_users 列 -> id, name
我想执行以下查询。
从 id 所在的用户中删除(从 expired_users 中选择 id);
此查询适用于 SQL 相关数据库。我想在 cassandra 中找到解决此问题的方法。
PS:我不想在表格中添加任何额外的列。
【问题讨论】:
我有两个表,一个是 users,另一个是 expired_users。
用户列-> id、name、age expired_users 列 -> id, name
我想执行以下查询。
从 id 所在的用户中删除(从 expired_users 中选择 id);
此查询适用于 SQL 相关数据库。我想在 cassandra 中找到解决此问题的方法。
PS:我不想在表格中添加任何额外的列。
【问题讨论】:
在设计 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);
您不必更新或删除该行,只需再次插入,之前的列值将被覆盖。
【讨论】:
您想要使用 join 作为删除语句的过滤器,这不是 Cassandra 模型的目的。
AFAIK 无法使用 cql 执行此操作。如果您想在不更改架构的情况下执行此操作 - 以任何具有 Cassandra 驱动程序的语言运行外部脚本。
【讨论】: