Cassandra - Alter Table
Modificare una tabella
È possibile modificare una tabella utilizzando il comando ALTER TABLE. Di seguito è riportata la sintassi per la creazione di una tabella.
Sintassi
ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
Utilizzando il comando ALTER, è possibile eseguire le seguenti operazioni:
Aggiungi una colonna
Rilascia una colonna
Aggiunta di una colonna
Utilizzando il comando ALTER, puoi aggiungere una colonna a una tabella. Durante l'aggiunta di colonne, è necessario fare attenzione che il nome della colonna non sia in conflitto con i nomi delle colonne esistenti e che la tabella non sia definita con l'opzione di archiviazione compatta. Di seguito è riportata la sintassi per aggiungere una colonna a una tabella.
ALTER TABLE table name
ADD new column datatype;
Example
Di seguito è riportato un esempio per aggiungere una colonna a una tabella esistente. Qui stiamo aggiungendo una colonna chiamataemp_email di tipo di dati di testo alla tabella denominata emp.
cqlsh:tutorialspoint> ALTER TABLE emp
... ADD emp_email text;
Verification
Utilizzare l'istruzione SELECT per verificare se la colonna viene aggiunta o meno. Qui puoi osservare la nuova colonna emp_email.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal
--------+----------+-----------+----------+-----------+---------
Far cadere una colonna
Utilizzando il comando ALTER, è possibile eliminare una colonna da una tabella. Prima di eliminare una colonna da una tabella, verificare che la tabella non sia definita con l'opzione di archiviazione compatta. Di seguito è riportata la sintassi per eliminare una colonna da una tabella utilizzando il comando ALTER.
ALTER table name
DROP column name;
Example
Di seguito è riportato un esempio per eliminare una colonna da una tabella. Qui stiamo eliminando la colonna denominataemp_email.
cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;
Verification
Verificare se la colonna viene eliminata utilizzando il file select dichiarazione, come mostrato di seguito.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------
(0 rows)
Da emp_email è stata cancellata, non la trovi più.
Modifica di una tabella utilizzando l'API Java
È possibile creare una tabella utilizzando il metodo execute () della classe Session. Seguire i passaggi indicati di seguito per modificare una tabella utilizzando l'API Java.
Passaggio 1: creare un oggetto cluster
Prima di tutto, crea un'istanza di Cluster.builder classe di com.datastax.driver.core pacchetto come mostrato di seguito.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Aggiungi un punto di contatto (indirizzo IP del nodo) utilizzando il file addContactPoint() metodo di Cluster.Builderoggetto. Questo metodo restituisceCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Utilizzando il nuovo oggetto builder, creare un oggetto cluster. Per fare ciò, hai un metodo chiamatobuild() nel Cluster.Builderclasse. Il codice seguente mostra come creare un oggetto cluster.
//Building a cluster
Cluster cluster = builder.build();
È possibile creare un oggetto cluster utilizzando una singola riga di codice come mostrato di seguito.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Passaggio 2: creare un oggetto sessione
Crea un'istanza dell'oggetto Session utilizzando il metodo connect () della classe Cluster come mostrato di seguito.
Session session = cluster.connect( );
Questo metodo crea una nuova sessione e la inizializza. Se si dispone già di un keyspace, è possibile impostarlo su quello esistente passando il nome KeySpace in formato stringa a questo metodo come mostrato di seguito.
Session session = cluster.connect(“ Your keyspace name ” );
Session session = cluster.connect(“ tp” );
Qui stiamo usando il KeySpace denominato tp. Pertanto, creare l'oggetto sessione come mostrato di seguito.
Passaggio 3: eseguire la query
È possibile eseguire query CQL utilizzando il metodo execute () della classe Session. Passa la query in formato stringa o come oggetto della classe Statement al metodo execute (). Qualunque cosa passi a questo metodo in formato stringa verrà eseguita nel filecqlsh.
Nell'esempio seguente, stiamo aggiungendo una colonna a una tabella denominata emp. Per fare ciò, devi memorizzare la query in una variabile stringa e passarla al metodo execute () come mostrato di seguito.
//Query
String query1 = "ALTER TABLE emp ADD emp_email text";
session.execute(query);
Di seguito è riportato il programma completo per aggiungere una colonna a una tabella esistente.
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");
}
}
Salva il programma sopra con il nome della classe seguito da .java, vai alla posizione in cui è stato salvato. Compilare ed eseguire il programma come mostrato di seguito.
$javac Add_Column.java $java Add_Column
In condizioni normali, dovrebbe produrre il seguente output:
Column added
Eliminazione di una colonna
Di seguito è riportato il programma completo per eliminare una colonna da una tabella esistente.
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");
}
}
Salva il programma sopra con il nome della classe seguito da .java, vai alla posizione in cui è stato salvato. Compilare ed eseguire il programma come mostrato di seguito.
$javac Delete_Column.java $java Delete_Column
In condizioni normali, dovrebbe produrre il seguente output:
Column deleted