📜  在 Cassandra 中更新集

📅  最后修改于: 2021-09-09 11:14:16             🧑  作者: Mango

在本文中,我们将讨论如何以不同的方式更新集合数据类型,还将讨论如何使用 UPDATE 子句插入行,如果我们不想要任何集合元素,那么我们也可以使用 UPDATE 子句删除与 (-)运算符。

首先,我们将创建表 Food_menu,其中 Café_id、Order_Date、total_cost、Menu_items 是下表中的字段。我们来看一下。

Create Table Food_menu 
(
 Cafe_id int Primary Key,
 Order_Date Date,
 total_cost int,    
 Menu_items Set
);

现在,我们将使用下面给出的以下 Cassandra 查询语言 (CQL) 查询将一些数据插入 Food_menu 表中。我们来看一下。

INSERT INTO Food_menu (Cafe_id,  Order_Date, total_cost, Menu_items)
VALUES (7801, '2019-02-13', 500, {'Banana', 'Mango', 'Apple'});

INSERT INTO Food_menu (Cafe_id,  Order_Date, total_cost, Menu_items)
VALUES (7802, '2019-02-15', 600, {'Banana', 'Mango', 'Apple'});

INSERT INTO Food_menu (Cafe_id,  Order_Date, total_cost, Menu_items)
VALUES (7803, '2019-02-19', 800, {'grapes', 'papaya', 'pomegranate'}); 

让我们看看插入数据的输出。

select * 
from Food_menu; 

输出:

现在,我们将在这里讨论更新集合数据类型。我们来看一下。

  1. 我们可以使用 (+)运算符在集合数据类型中添加元素。
    UPDATE Food_menu
    SET Menu_items = Menu_items + {'mango shake'}  
    WHERE Cafe_id = 7802; 

    让我们看看上面 CQL 查询的输出。

    select * 
    from Food_menu; 

    输出:

  2. 我们可以使用减法 (-)运算符从集合中删除元素。
    UPDATE Food_menu
    SET Menu_items = Menu_items - { 'Banana'} 
    WHERE Cafe_id = 7801; 

    让我们看看以下 CQL 查询的输出。

    select * 
    from Food_menu; 

    输出:

  3. 现在,如果我们想从集合中删除所有元素,则使用下面给出的以下 CQL 查询。
    UPDATE Food_menu
    SET Menu_items = {''} 
    WHERE Cafe_id = 7803;
    select * 
    from Food_menu; 

    输出: