使用CQLDELETE語句從表中刪除數據 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用CQLDELETE語句從表中刪除數據

若要刪除資料book_awards表中的資料,請使用DELETE陳述式。

您可以從列或分割區中刪除資料。刪除數據時要小心,因為刪除是不可逆的。

從資料表中刪除一列或所有資料列並不會刪除資料表。因此,您可以用數據重新填充它。刪除資料表會刪除資料表及其中的所有資料。要再次使用該表,您必須重新創建它並向其中添加數據。刪除密鑰空間將刪除密鑰空間和其中的所有表。要使用密鑰空間和表格,您必須重新創建它們,然後用數據填充它們。您可以使用 Amazon Keyspaces P oint-in-time (PITR) 恢復來幫助恢復已刪除的表,以了解更多信息,請參閱透過 Amazon Keyspaces 的 point-in-time 復原功能 Backup 和還原資料。若要瞭解如何在PITR啟用的情況下還原已刪除的表格,請參閱使用 Amazon Keyspaces 恢復已刪除的表 PITR

刪除儲存格

從列中刪除欄會從指定的儲存格中移除資料。當您使用SELECT陳述式顯示該欄時,資料會顯示為 null,雖然空值不存儲在該位置。

刪除一個或多個特定列的一般語法如下。

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

在您的book_awards桌子中,您可以看到贏得 2020 年「理查德·羅伊」價格第一筆價格的書的標題是「漫長的夏天」。想像一下,這個標題已被召回,你需要從這個單元格中刪除數據。

刪除特定儲存格
  1. 開啟 AWS 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. 開啟 AWS 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 間的生活時間(TTL)過期數據(對於 Apache 卡桑德拉)