Cassandra - Mettre à jour les données
Mise à jour des données dans une table
UPDATEest la commande utilisée pour mettre à jour les données dans une table. Les mots-clés suivants sont utilisés lors de la mise à jour des données dans une table -
Where - Cette clause permet de sélectionner la ligne à mettre à jour.
Set - Définissez la valeur à l'aide de ce mot-clé.
Must - Comprend toutes les colonnes composant la clé primaire.
Lors de la mise à jour des lignes, si une ligne donnée n'est pas disponible, UPDATE crée une nouvelle ligne. Vous trouverez ci-dessous la syntaxe de la commande UPDATE -
UPDATE <tablename>
SET <column name> = <new value>
<column name> = <value>....
WHERE <condition>
Exemple
Supposons qu'il existe une table nommée emp. Ce tableau stocke les détails des employés d'une certaine entreprise et contient les détails suivants:
emp_id | nom_emp | emp_city | emp_phone | emp_sal |
---|---|---|---|---|
1 | RAM | Hyderabad | 9848022338 | 50000 |
2 | merle | Hyderabad | 9848022339 | 40000 |
3 | rahman | Chennai | 9848022330 | 45 000 |
Mettons maintenant à jour emp_city de robin à Delhi, et son salaire à 50000. Ci-dessous est la requête pour effectuer les mises à jour requises.
cqlsh:tutorialspoint> UPDATE emp SET emp_city='Delhi',emp_sal=50000
WHERE emp_id=2;
Vérification
Utilisez l'instruction SELECT pour vérifier si les données ont été mises à jour ou non. Si vous vérifiez la table emp à l'aide de l'instruction SELECT, elle produira la sortie suivante.
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)
Ici, vous pouvez observer que les données de la table ont été mises à jour.
Mise à jour des données à l'aide de l'API Java
Vous pouvez mettre à jour les données d'une table à l'aide de la méthode execute () de la classe Session. Suivez les étapes ci-dessous pour mettre à jour les données dans une table à l'aide de l'API Java.
Étape 1: créer un objet de cluster
Créer 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. Utilisez le code suivant pour créer l'objet de cluster.
//Building a cluster
Cluster cluster = builder.build();
Vous pouvez créer l'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”);
Ici, nous utilisons le KeySpace nommé tp. Par conséquent, créez l'objet de session comme indiqué ci-dessous.
Session session = cluster.connect(“tp”);
É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 mettons à jour la table emp. Vous devez stocker la requête dans une variable de chaîne et la transmettre à la méthode execute () comme indiqué ci-dessous:
String query = “ UPDATE emp SET emp_city='Delhi',emp_sal=50000
WHERE emp_id = 2;” ;
Vous trouverez ci-dessous le programme complet pour mettre à jour les données dans une table à l'aide de l'API Java.
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");
}
}
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 Update_Data.java
$java Update_Data
Dans des conditions normales, il devrait produire la sortie suivante -
Data updated