En este artículo, discutiremos cómo podemos actualizar columnas de forma condicional y cómo el comando condicional IF, IF EXISTS y IF NOT EXISTS es útil para la actualización condicional.
La actualización condicional es muy útil porque la consulta devolverá los resultados en VERDADERO o FALSO y Transacción que sigue SI, SI EXISTE y SI NO EXISTE, este tipo de comando se incluye en la transacción liviana en Cassandra. Entonces, echemos un vistazo.
Si la consulta coincide con una fila, entonces el comando IF EXISTS se ejecutará con éxito y devolverá los resultados VERDADERO si la fila coincide con FALSO. Entendamos con un ejemplo.
CREATE TABLE Help_desk ( User_name text, Request_id uuid, Query_description text, Request_date date, Primary key(User_name) );
Ahora, inserte algunos datos en Help_desk.
INSERT INTO Help_desk (Request_id, User_name, Query_description, Request_date ) VALUES (uuid(), 'Ashish', ' App is not working', '2019-12-10'); INSERT INTO Help_desk (Request_id, User_name, Query_description, Request_date ) VALUES (uuid(), 'Rana', ' keyboard is not working', '2019-12-11'); INSERT INTO Help_desk (Request_id, User_name, Query_description, Request_date ) VALUES (uuid(), 'Abi', ' cpu is not working', '2019-12-13');
Veamos los resultados.
select * from Help_desk;
Producción:
Ahora, aquí vamos a actualizar la tabla Help_desk.
Echemos un vistazo.
UPDATE Help_desk SET Query_description = 'Resolve and closed the ticket.' WHERE User_name = 'Ashish' IF EXISTS;
En la consulta CQL anterior, si la fila existe, devolverá verdadero.
Veamos los resultados.
Producción:
En la consulta CQL anterior, si no existe ninguna fila, devolverá verdadero.
Veamos los resultados.
[applied] ----------- False
UPDATE Help_desk SET Request_id = uuid() WHERE User_name = 'Ashish' IF NOT EXISTS;
Utilice la condición IF para aplicar pruebas a uno o más valores de columna (clave no principal) en la fila coincidente.
Ahora, aquí vamos a usar la condición IF para otros valores de columna en la fila correspondiente. Por ejemplo, para establecer un nuevo UUID solo si Request_id coincide.
UPDATE Help_desk SET Request_id = uuid() WHERE User_name = 'Rana' IF Request_id = NULL;
Veamos los resultados.
Producción:
Aquí, vamos a verificar las pruebas de condición IF para un valor nulo, por ejemplo:
UPDATE Help_desk SET Request_id = uuid() WHERE User_name = 'Rana' IF Request_id = NULL;
Veamos los resultados.
Producción:
Ahora, aquí veremos el resultado de la tabla final después de todos los cambios.
Veamos los resultados.
select * from Help_desk;
Producción:
Nota:
- En el escenario anterior, solo mencionamos algunos puntos si un registro coincide y se inserta la columna Request_id sin valor.
- Esta es la segunda observación de que si un registro coincide y la columna Request_id tiene un valor (no es nulo), la declaración falla.
- Si no hay coincidencias de registro para las condiciones respectivas, se crea un nuevo registro.
PRECAUCIÓN: En las consultas CQL, las actualizaciones condicionales son ejemplos de transacciones ligeras e incurren en un rendimiento no despreciable que cuesta y debe usarse con moderación.
Publicación traducida automáticamente
Artículo escrito por Ashish_rana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA