Cassandra - 截斷表



截斷表

可以使用TRUNCATE命令截斷表。截斷表會永久刪除表中的所有行。以下是此命令的語法。

語法

TRUNCATE <tablename>

示例

假設有一個名為student的表,其中包含以下資料。

s_id s_name s_branch s_aggregate
1 ram IT 70
2 rahman EEE 75
3 robbin Mech 72

執行select語句獲取student表時,將得到以下輸出。

cqlsh:tp> select * from student;

 s_id | s_aggregate | s_branch | s_name
------+-------------+----------+--------
    1 |          70 |       IT | ram
    2 |          75 |      EEE | rahman
    3 |          72 |     MECH | robbin

(3 rows)

現在使用TRUNCATE命令截斷表。

cqlsh:tp> TRUNCATE student;

驗證

透過執行select語句來驗證表是否已截斷。以下是截斷後student表上select語句的輸出。

cqlsh:tp> select * from student;

 s_id | s_aggregate | s_branch | s_name
------+-------------+----------+--------

(0 rows)

使用Java API截斷表

可以使用Session類的execute()方法截斷表。請按照以下步驟截斷表。

步驟1:建立Cluster物件

首先,建立一個com.datastax.driver.core包中Cluster.builder類的例項,如下所示。

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

使用Cluster.Builder物件的addContactPoint()方法新增一個聯絡點(節點的IP地址)。此方法返回Cluster.Builder

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

使用新的builder物件,建立一個cluster物件。為此,在Cluster.Builder類中有一個名為build()的方法。以下程式碼顯示瞭如何建立一個cluster物件。

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

可以使用一行程式碼構建一個cluster物件,如下所示。

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

步驟2:建立Session物件

使用Cluster類的connect()方法建立一個Session物件的例項,如下所示。

Session session = cluster.connect( );

此方法建立一個新的會話並對其進行初始化。如果您已經有了一個keyspace,則可以透過將KeySpace名稱以字串格式傳遞給此方法來將其設定為現有的keyspace,如下所示。

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

這裡我們使用名為tp的keyspace。因此,建立session物件如下所示。

步驟3:執行查詢

可以使用Session類的execute()方法執行CQL查詢。將查詢以字串格式或作為Statement類物件傳遞給execute()方法。您以字串格式傳遞給此方法的任何內容都將在cqlsh上執行。

在下面的示例中,我們正在截斷名為emp的表。您必須將查詢儲存在一個字串變數中,並將其傳遞給execute()方法,如下所示。

//Query
String query = "TRUNCATE emp;;”;
session.execute(query);

以下是使用Java API在Cassandra中截斷表的完整程式。

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

public class Truncate_Table {

   public static void main(String args[]){
   
      //Query
      String query = "Truncate student;";
   
      //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("Table truncated");
   }
} 

將上述程式儲存為類名後跟.java,瀏覽到儲存它的位置。編譯並執行程式,如下所示。

$javac Truncate_Table.java
$java Truncate_Table

在正常情況下,它應該產生以下輸出:

Table truncated
廣告
© . All rights reserved.