【发布时间】:2014-10-18 10:47:59
【问题描述】:
cassandra 中的 cql 表中存在的所有行是否都有一个命令,就像 sql 中的一样?
delete from TABLE
按照文档,我没有找到任何方法可以在没有 where 条件的情况下执行删除操作。
DELETE col1 FROM SomeTable WHERE userID = 'some_key_value';
【问题讨论】:
cassandra 中的 cql 表中存在的所有行是否都有一个命令,就像 sql 中的一样?
delete from TABLE
按照文档,我没有找到任何方法可以在没有 where 条件的情况下执行删除操作。
DELETE col1 FROM SomeTable WHERE userID = 'some_key_value';
【问题讨论】:
要从 CQL 表中删除所有行,您可以使用 TRUNCATE 命令:
TRUNCATE keyspace_name.table_name;
或者,如果您已经在使用包含目标表的键空间:
TRUNCATE table_name;
需要注意,但默认情况下,Cassandra 会在 TRUNCATE 之前创建表的快照。请务必清理旧快照,或在您的 cassandra.yaml 中设置 auto_snapshot: false。
【讨论】:
TRUNCATE,然后运行nodetool clearsnapshot。