使用CQLDELETE语句从表中删除数据 - Amazon Keyspaces(Apache Cassandra 兼容)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用CQLDELETE语句从表中删除数据

要删除 book_awards 表中的数据,请使用 DELETE 语句。

您可以从行或分区中删除数据。删除数据时要小心,因为删除是不可逆操作。

从表中删除一行或全部行并不会删除该表。因此,您可以用数据重新填充该表。删除表将删除表及其中的所有数据。要再次使用表,必须重新创建表并向其中添加数据。删除键空间会删除键空间及其中的所有表。要使用键空间和表,必须重新创建,然后用数据填充。您可以使用 Amazon Keyspaces P oint-in-time (PITR) 恢复来帮助恢复已删除的表,要了解更多信息,请参阅。使用 Amazon Keyspac point-in-time es 恢复功能备份和还原数据要了解如何在PITR启用后恢复已删除的表,请参阅使用 Amazon Keyspaces 恢复已删除的表 PITR

删除单元格

从行中删除列会从指定单元格中删除数据。使用SELECT语句显示该列时,数据显示为 null,尽管该位置未存储空值。

删除一个或多个特定列的一般语法如下所示。

DELETE column_name1[, column_name2...] FROM table_name WHERE condition ;

在你的book_awards表格中,你可以看到赢得2020年 “Richard Roe” 价格第一名的书名是 “漫长的夏天”。想象一下,这个标题已被召回,你需要从这个单元格中删除数据。

删除特定单元格
  1. 打开 Amazon CloudShell 然后使用以下命令连接到 Amazon Keyspaces。请务必更新 us-east-1 使用您自己的区域。

    cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
  2. 运行以下 DELETE 查询。

    DELETE book_title FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
  3. 验证删除请求是否按预期发出。

    SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;

    此语句的输出如下所示。

    year | award | category | rank | author | book_title | publisher ------+-------------+----------+------+-------------------+------------+--------------- 2020 | Richard Roe | Fiction | 1 | Alejandro Rosalez | null | SomePublisher

删除行

有时您可能需要删除整行,例如为了满足数据删除请求。删除行的一般语法如下所示。

DELETE FROM table_name WHERE condition ;
删除行
  1. 打开 Amazon CloudShell 然后使用以下命令连接到 Amazon Keyspaces。请务必更新 us-east-1 使用您自己的区域。

    cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
  2. 运行以下 DELETE 查询。

    DELETE FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
  3. 验证删除操作是否如预期。

    SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;

    删除行后,此语句的输出如下所示。

    year | award | category | rank | author | book_title | publisher ------+-------+----------+------+--------+------------+----------- (0 rows)

您可以使用 Amazon Keyspaces 的存活时间自动从表中删除过期的数据,有关更多信息,请参阅。使用 Amazon Keyspaces 的 Time to Live (TTL) 过期数据(适用于 Apache Cassandra)