Cassandra批量
在Cassandra中,BATCH用於同時執行多個修改語句(插入,更新,刪除)。 當你必須更新一些以及刪除一些現有的列是非常有用的。
語法
BEGIN BATCH  
<insert-stmt>/ <update-stmt>/ <delete-stmt>  
APPLY BATCH實例:
讓我們舉個例子來演示BATCH命令。 在這裏,我們有一個名爲「student」的表,其中包含列(student_id,student_fees,student_name),具有以下數據。
在這個例子中,我們將執行BATCH(插入,更新和刪除)操作:
-   插入一個包含以下信息的新行(4,4000,Sumsu)。
-   更新行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>