Cassandra - Modifier la table
Modifier une table
Vous pouvez modifier une table à l'aide de la commande ALTER TABLE. Vous trouverez ci-dessous la syntaxe pour créer une table.
Syntaxe
ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
À l'aide de la commande ALTER, vous pouvez effectuer les opérations suivantes -
Ajouter une colonne
Déposer une colonne
Ajouter une colonne
À l'aide de la commande ALTER, vous pouvez ajouter une colonne à une table. Lors de l'ajout de colonnes, vous devez vous assurer que le nom de la colonne n'est pas en conflit avec les noms de colonne existants et que la table n'est pas définie avec l'option de stockage compact. Vous trouverez ci-dessous la syntaxe pour ajouter une colonne à une table.
ALTER TABLE table name
ADD new column datatype;
Example
Vous trouverez ci-dessous un exemple pour ajouter une colonne à une table existante. Ici, nous ajoutons une colonne appeléeemp_email du type de données texte à la table nommée emp.
cqlsh:tutorialspoint> ALTER TABLE emp
... ADD emp_email text;
Verification
Utilisez l'instruction SELECT pour vérifier si la colonne est ajoutée ou non. Ici, vous pouvez observer la colonne emp_email nouvellement ajoutée.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal
--------+----------+-----------+----------+-----------+---------
Déposer une colonne
À l'aide de la commande ALTER, vous pouvez supprimer une colonne d'une table. Avant de supprimer une colonne d'une table, vérifiez que la table n'est pas définie avec l'option de stockage compact. Vous trouverez ci-dessous la syntaxe pour supprimer une colonne d'une table à l'aide de la commande ALTER.
ALTER table name
DROP column name;
Example
Vous trouverez ci-dessous un exemple pour supprimer une colonne d'une table. Ici, nous supprimons la colonne nomméeemp_email.
cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;
Verification
Vérifiez si la colonne est supprimée à l'aide du select déclaration, comme indiqué ci-dessous.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------
(0 rows)
Depuis emp_email la colonne a été supprimée, vous ne pouvez plus la trouver.
Modifier une table à l'aide de l'API Java
Vous pouvez créer une table en utilisant la méthode execute () de la classe Session. Suivez les étapes ci-dessous pour modifier une table à l'aide de l'API Java.
Étape 1: créer un objet de cluster
Tout d'abord, créez une instance de Cluster.builder une sorte de com.datastax.driver.core paquet comme indiqué ci-dessous.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Ajoutez un point de contact (adresse IP du nœud) à l'aide du addContactPoint() méthode de Cluster.Builderobjet. Cette méthode renvoieCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
À l'aide du nouvel objet de générateur, créez un objet de cluster. Pour ce faire, vous disposez d'une méthode appeléebuild() dans le Cluster.Builderclasse. Le code suivant montre comment créer un objet de cluster.
//Building a cluster
Cluster cluster = builder.build();
Vous pouvez créer un objet de cluster en utilisant une seule ligne de code comme indiqué ci-dessous.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Étape 2: créer un objet de session
Créez une instance de l'objet Session à l'aide de la méthode connect () de la classe Cluster comme indiqué ci-dessous.
Session session = cluster.connect( );
Cette méthode crée une nouvelle session et l'initialise. Si vous avez déjà un espace de clés, vous pouvez le définir sur celui existant en transmettant le nom de l'espace de clé au format chaîne à cette méthode comme indiqué ci-dessous.
Session session = cluster.connect(“ Your keyspace name ” );
Session session = cluster.connect(“ tp” );
Ici, nous utilisons le KeySpace nommé tp. Par conséquent, créez l'objet de session comme indiqué ci-dessous.
Étape 3: Exécuter la requête
Vous pouvez exécuter des requêtes CQL en utilisant la méthode execute () de la classe Session. Transmettez la requête au format chaîne ou en tant qu'objet de classe Statement à la méthode execute (). Tout ce que vous passez à cette méthode au format chaîne sera exécuté sur lecqlsh.
Dans l'exemple suivant, nous ajoutons une colonne à une table nommée emp. Pour ce faire, vous devez stocker la requête dans une variable chaîne et la transmettre à la méthode execute () comme indiqué ci-dessous.
//Query
String query1 = "ALTER TABLE emp ADD emp_email text";
session.execute(query);
Ci-dessous est le programme complet pour ajouter une colonne à une table existante.
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");
}
}
Enregistrez le programme ci-dessus avec le nom de la classe suivi de .java, accédez à l'emplacement où il est enregistré. Compilez et exécutez le programme comme indiqué ci-dessous.
$javac Add_Column.java $java Add_Column
Dans des conditions normales, il devrait produire la sortie suivante -
Column added
Supprimer une colonne
Vous trouverez ci-dessous le programme complet pour supprimer une colonne d'une table existante.
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");
}
}
Enregistrez le programme ci-dessus avec le nom de la classe suivi de .java, accédez à l'emplacement où il est enregistré. Compilez et exécutez le programme comme indiqué ci-dessous.
$javac Delete_Column.java $java Delete_Column
Dans des conditions normales, il devrait produire la sortie suivante -
Column deleted