Cassandra - อัปเดตข้อมูล

การอัปเดตข้อมูลในตาราง

UPDATEเป็นคำสั่งที่ใช้ในการอัปเดตข้อมูลในตาราง คำหลักต่อไปนี้ใช้ขณะอัปเดตข้อมูลในตาราง -

  • Where - ประโยคนี้ใช้เพื่อเลือกแถวที่จะอัปเดต

  • Set - กำหนดมูลค่าโดยใช้คำสำคัญนี้

  • Must - รวมคอลัมน์ทั้งหมดที่เขียนคีย์หลัก

ในขณะอัปเดตแถวหากไม่สามารถใช้แถวที่ระบุได้ UPDATE จะสร้างแถวใหม่ ให้ด้านล่างเป็นไวยากรณ์ของคำสั่ง UPDATE -

UPDATE <tablename>
SET <column name> = <new value>
<column name> = <value>....
WHERE <condition>

ตัวอย่าง

สมมติว่ามีตารางชื่อ emp. ตารางนี้จัดเก็บรายละเอียดของพนักงานของ บริษัท บางแห่งและมีรายละเอียดดังต่อไปนี้ -

emp_id emp_name emp_city emp_phone emp_sal
1 แกะ ไฮเดอราบาด 9848022338 50000
2 โรบิน ไฮเดอราบาด 9848022339 40000
3 ราห์มาน เจนไน 9848022330 45000

ตอนนี้ให้เราอัปเดต emp_city ของ robin เป็น Delhi และเงินเดือนของเขาเป็น 50000 ให้ด้านล่างเป็นแบบสอบถามเพื่อดำเนินการอัปเดตที่จำเป็น

cqlsh:tutorialspoint> UPDATE emp SET emp_city='Delhi',emp_sal=50000
   WHERE emp_id=2;

การยืนยัน

ใช้คำสั่ง SELECT เพื่อตรวจสอบว่าข้อมูลได้รับการอัพเดตหรือไม่ หากคุณตรวจสอบตาราง emp โดยใช้คำสั่ง SELECT จะให้ผลลัพธ์ดังต่อไปนี้

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |     Delhi |    robin | 9848022339 | 50000
      3 |   Chennai |   rahman | 9848022330 | 45000
      
(3 rows)

ที่นี่คุณสามารถสังเกตได้ว่าข้อมูลตารางได้รับการอัปเดตแล้ว

การอัปเดตข้อมูลโดยใช้ Java API

คุณสามารถอัพเดตข้อมูลในตารางโดยใช้เมธอด execute () ของคลาส Session ทำตามขั้นตอนด้านล่างเพื่ออัปเดตข้อมูลในตารางโดยใช้ Java API

ขั้นตอนที่ 1: สร้างวัตถุคลัสเตอร์

สร้างอินสแตนซ์ของ Cluster.builder ชั้นเรียนของ com.datastax.driver.core แพ็คเกจตามที่แสดงด้านล่าง

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

เพิ่มจุดติดต่อ (ที่อยู่ IP ของโหนด) โดยใช้ addContactPoint() วิธีการของ Cluster.Builderวัตถุ. วิธีนี้ส่งกลับCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint("127.0.0.1");

ใช้วัตถุตัวสร้างใหม่สร้างวัตถุคลัสเตอร์ ในการทำเช่นนั้นคุณมีวิธีการที่เรียกว่าbuild() ใน Cluster.Builderชั้นเรียน ใช้รหัสต่อไปนี้เพื่อสร้างวัตถุคลัสเตอร์

//Building a cluster
Cluster cluster = builder.build();

คุณสามารถสร้างวัตถุคลัสเตอร์โดยใช้รหัสบรรทัดเดียวดังที่แสดงด้านล่าง

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

ขั้นตอนที่ 2: สร้างวัตถุเซสชัน

สร้างอินสแตนซ์ของวัตถุเซสชันโดยใช้เมธอด connect () ของคลาสคลัสเตอร์ดังที่แสดงด้านล่าง

Session session = cluster.connect( );

วิธีนี้จะสร้างเซสชันใหม่และเริ่มต้น หากคุณมีคีย์สเปซอยู่แล้วคุณสามารถตั้งค่าเป็นคีย์สเปซที่มีอยู่ได้โดยส่งชื่อคีย์สเปซในรูปแบบสตริงไปยังเมธอดนี้ดังที่แสดงด้านล่าง

Session session = cluster.connect(“ Your keyspace name”);

ที่นี่เรากำลังใช้ KeySpace ชื่อ tp. ดังนั้นให้สร้างวัตถุเซสชันดังที่แสดงด้านล่าง

Session session = cluster.connect(“tp”);

ขั้นตอนที่ 3: ดำเนินการสืบค้น

คุณสามารถดำเนินการสืบค้น CQL โดยใช้เมธอด execute () ของคลาส Session ส่งแบบสอบถามในรูปแบบสตริงหรือเป็นวัตถุคลาส Statement ไปยังเมธอด execute () สิ่งที่คุณส่งไปยังเมธอดนี้ในรูปแบบสตริงจะถูกดำเนินการบนไฟล์cqlsh.

ในตัวอย่างต่อไปนี้เรากำลังอัปเดตตาราง emp คุณต้องเก็บแบบสอบถามไว้ในตัวแปรสตริงและส่งต่อไปยังเมธอด execute () ดังที่แสดงด้านล่าง:

String query = “ UPDATE emp SET emp_city='Delhi',emp_sal=50000
WHERE emp_id = 2;” ;

ด้านล่างนี้เป็นโปรแกรมที่สมบูรณ์ในการอัปเดตข้อมูลในตารางโดยใช้ Java API

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Update_Data {
  
   public static void main(String args[]){
      
      //query
      String query = " UPDATE emp SET emp_city='Delhi',emp_sal=50000"
          
      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
         
      //Creating Session object
      Session session = cluster.connect("tp");
         
      //Executing the query
      session.execute(query);

      System.out.println("Data updated");
   }
 }

บันทึกโปรแกรมข้างต้นด้วยชื่อคลาสตามด้วย. java เรียกดูตำแหน่งที่บันทึกไว้ คอมไพล์และรันโปรแกรมดังที่แสดงด้านล่าง

$javac Update_Data.java
$java Update_Data

ภายใต้สภาวะปกติควรให้ผลลัพธ์ดังต่อไปนี้ -

Data updated