Cassandra 教程

Cassandra键空间操作

Cassandra表操作

Cassandra数据CRUD操作

Cassandra CQL数据类型

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/cassandra-batch.html

Cassandra批量


在 Cassandra 中,BATCH用于同时执行多个修改语句(插入,更新,删除)。当你必须更新一些以及删除一些现有的列是非常有用的。

语法

BEGIN BATCH  
<insert-stmt>/ <update-stmt>/ <delete-stmt>  
APPLY BATCH

实例:

让我们举个例子来演示BATCH命令。在这里,我们有一个名为“student”的表,其中包含列(student_idstudent_feesstudent_name),具有以下数据。

在这个例子中,我们将执行 BATCH(插入,更新和删除)操作:

  • 插入一个包含以下信息的新行(44000Sumsu)。
  • 更新行 ID 为3的学生的student_fees列的值为8000
  • 删除具有行 ID 为2的雇员的student_fees值。

完整的语句如下所示 -

## 创建表
CREATE TABLE student(  
   student_id int PRIMARY KEY,  
   student_name text,  
   student_fees varint
 );   
## 插入数据
INSERT INTO student (student_id, student_fees, student_name)   
VALUES(1,5000, 'Maxsu');  
INSERT INTO student (student_id, student_fees, student_name)   
VALUES(2,3000, 'Minsu');  
INSERT INTO student (student_id, student_fees, student_name)   
VALUES(3, 2000, 'Modlee');

查询数据结果如下 -

cqlsh:yiibai_ks> select * from student;

 student_id | student_fees | student_name
------------+--------------+--------------
          1 |         5000 |        Maxsu
          2 |         3000 |        Minsu
          3 |         2000 |       Modlee

(3 rows)
cqlsh:yiibai_ks>

执行BATCH命令 -

BEGIN BATCH
INSERT INTO student(student_id, student_fees, student_name) values(4, 5500, Sumlee);
UPDATE student SET student_fees=8000 WHERE  student_id=3;
DELETE student_fees FROM student WHERE student_id=2;
APPLY BATCH;

现在执行了BATCH命令之后。您可以使用 SELECT 命令验证它。

cqlsh:yiibai_ks> BEGIN BATCH
             ... INSERT INTO student(student_id, student_fees, student_name) values(4, 5500, 'Sumlee');
             ... UPDATE student SET student_fees=8000 WHERE  student_id=3;
             ... DELETE student_fees FROM student WHERE student_id=2;
             ... APPLY BATCH;
cqlsh:yiibai_ks> SELECT * FROM student;

 student_id | student_fees | student_name
------------+--------------+--------------
          1 |         5000 |        Maxsu
          2 |         null |        Minsu
          4 |         5500 |       Sumlee
          3 |         8000 |       Modlee

(4 rows)
cqlsh:yiibai_ks>