本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 CQL DELETE
语句从表中删除数据
要删除 book_awards
表中的数据,请使用 DELETE
语句。
您可以从行或分区中删除数据。删除数据时要小心,因为删除是不可逆操作。
从表中删除一行或所有行不会删除该表。因此,您可以用数据重新填充该表。删除表将删除表及其中的所有数据。要再次使用表,必须重新创建表并向其中添加数据。删除键空间会删除键空间及其中的所有表。要使用键空间和表,必须重新创建,然后用数据填充。您可以使用 Amazon Keyspaces 时间点故障恢复(PITR)来协助还原已删除的表,要了解更多信息,请参阅使用 Amazon Keyspaces 时间点故障恢复来备份和还原数据。要了解如何在启用 PITR 的情况下还原已删除的表,请参阅使用 Amazon Keyspaces PITR 还原已删除的表。
删除单元格
从行中删除列会从指定单元格中删除数据。使用 SELECT
语句显示该列时,数据将显示为 null
,尽管该位置并未存储 null 值。
删除一个或多个特定列的一般语法如下所示。
DELETE column_name1[, column_name2...] FROM table_name WHERE condition ;
在 book_awards
表中,您可以看到荣获 2020 年“Richard Roe”奖第一名的书名是《Long Summer》。想象一下,该书名已被召回,您需要从该单元格中删除数据。
删除特定单元格
-
使用以下命令打开 AWS CloudShell 并连接 Amazon Keyspaces。确保将
us-east-1
更新为您自己的区域。cqlsh-expansion cassandra.
us-east-1
.amazonaws.com 9142 --ssl -
运行以下
DELETE
查询。DELETE book_title FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
-
验证删除请求是否如预期。
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 ;
删除行
-
使用以下命令打开 AWS CloudShell 并连接 Amazon Keyspaces。确保将
us-east-1
更新为您自己的区域。cqlsh-expansion cassandra.
us-east-1
.amazonaws.com 9142 --ssl -
运行以下
DELETE
查询。DELETE FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
-
验证删除操作是否如预期。
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(Apache Cassandra 兼容)的生存时间(TTL)功能让数据过期。