在Cassandra中,BATCH用于同時執(zhí)行多個修改語句(插入,更新,刪除)。 當你必須更新一些以及刪除一些現(xiàn)有的列是非常有用的。
語法
BEGIN BATCH
<insert-stmt>/ <update-stmt>/ <delete-stmt>
APPLY BATCH
實例:
讓我們舉個例子來演示BATCH命令。 在這里,我們有一個名為“student”的表,其中包含列(student_id,student_fees,student_name),具有以下數(shù)據(jù)。
在這個例子中,我們將執(zhí)行BATCH(插入,更新和刪除)操作:
4,4000,Sumsu)。3的學(xué)生的student_fees列的值為8000。2的雇員的student_fees值。完整的語句如下所示 -
## 創(chuàng)建表
CREATE TABLE student(
student_id int PRIMARY KEY,
student_name text,
student_fees varint
);
## 插入數(shù)據(jù)
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');
查詢數(shù)據(jù)結(jié)果如下 -
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>
執(zhí)行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;
現(xiàn)在執(zhí)行了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>