Cassandra - Alter Table

Modificar una tabla

Puedes modificar una tabla usando el comando ALTER TABLE. A continuación se muestra la sintaxis para crear una tabla.

Sintaxis

ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>

Usando el comando ALTER, puede realizar las siguientes operaciones:

  • Agregar una columna

  • Suelta una columna

Agregar una columna

Usando el comando ALTER, puede agregar una columna a una tabla. Al agregar columnas, debe tener cuidado de que el nombre de la columna no entre en conflicto con los nombres de las columnas existentes y que la tabla no esté definida con la opción de almacenamiento compacto. A continuación se muestra la sintaxis para agregar una columna a una tabla.

ALTER TABLE table name
ADD  new column datatype;

Example

A continuación se muestra un ejemplo para agregar una columna a una tabla existente. Aquí estamos agregando una columna llamadaemp_email del tipo de datos de texto a la tabla denominada emp.

cqlsh:tutorialspoint> ALTER TABLE emp
   ... ADD emp_email text;

Verification

Utilice la instrucción SELECT para verificar si la columna se agrega o no. Aquí puede observar la columna emp_email recién agregada.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal
--------+----------+-----------+----------+-----------+---------

Dejar caer una columna

Usando el comando ALTER, puede eliminar una columna de una tabla. Antes de eliminar una columna de una tabla, verifique que la tabla no esté definida con la opción de almacenamiento compacto. A continuación se muestra la sintaxis para eliminar una columna de una tabla usando el comando ALTER.

ALTER table name
DROP column name;

Example

A continuación se muestra un ejemplo para eliminar una columna de una tabla. Aquí estamos eliminando la columna llamadaemp_email.

cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;

Verification

Verifique si la columna se elimina usando el select declaración, como se muestra a continuación.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------
(0 rows)

Ya que emp_email La columna ha sido eliminada, ya no puede encontrarla.

Modificar una tabla usando la API de Java

Puede crear una tabla usando el método execute () de la clase Session. Siga los pasos que se indican a continuación para modificar una tabla utilizando la API de Java.

Paso 1: crear un objeto de clúster

En primer lugar, cree una instancia de Cluster.builder clase de com.datastax.driver.core paquete como se muestra a continuación.

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

Agregue un punto de contacto (dirección IP del nodo) usando el addContactPoint() método de Cluster.Builderobjeto. Este método devuelveCluster.Builder.

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

Con el nuevo objeto generador, cree un objeto de clúster. Para hacerlo, tienes un método llamadobuild() en el Cluster.Builderclase. El siguiente código muestra cómo crear un objeto de clúster.

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

Puede crear un objeto de clúster con una sola línea de código como se muestra a continuación.

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

Paso 2: crear un objeto de sesión

Cree una instancia del objeto Session utilizando el método connect () de la clase Cluster como se muestra a continuación.

Session session = cluster.connect( );

Este método crea una nueva sesión y la inicializa. Si ya tiene un espacio de claves, puede establecerlo en el existente pasando el nombre del espacio de claves en formato de cadena a este método como se muestra a continuación.

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

Aquí estamos usando el KeySpace llamado tp. Por lo tanto, cree el objeto de sesión como se muestra a continuación.

Paso 3: ejecutar la consulta

Puede ejecutar consultas CQL utilizando el método execute () de la clase Session. Pase la consulta en formato de cadena o como un objeto de clase Statement al método execute (). Todo lo que pase a este método en formato de cadena se ejecutará en elcqlsh.

En el siguiente ejemplo, estamos agregando una columna a una tabla llamada emp. Para hacerlo, debe almacenar la consulta en una variable de cadena y pasarla al método execute () como se muestra a continuación.

//Query
String query1 = "ALTER TABLE emp ADD emp_email text";
session.execute(query);

A continuación se muestra el programa completo para agregar una columna a una tabla existente.

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

public class Add_column {

   public static void main(String args[]){

      //Query
      String query = "ALTER TABLE emp ADD emp_email text";

      //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("Column added");
   }
}

Guarde el programa anterior con el nombre de la clase seguido de .java, busque la ubicación donde está guardado. Compile y ejecute el programa como se muestra a continuación.

$javac Add_Column.java $java Add_Column

En condiciones normales, debería producir el siguiente resultado:

Column added

Eliminar una columna

A continuación se muestra el programa completo para eliminar una columna de una tabla existente.

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

public class Delete_Column {

   public static void main(String args[]){

      //Query
      String query = "ALTER TABLE emp DROP emp_email;";

      //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("Column deleted");
   }
 }

Guarde el programa anterior con el nombre de la clase seguido de .java, busque la ubicación donde está guardado. Compile y ejecute el programa como se muestra a continuación.

$javac Delete_Column.java $java Delete_Column

En condiciones normales, debería producir el siguiente resultado:

Column deleted