Tipo estático usando lote en Cassandra

Requisito previo: Cassandra
En este artículo, analizaremos la columna estática que usa la declaración BATCH y cómo funciona con la declaración BATCH. La columna estática se puede usar para la actualización condicional mediante una declaración por lotes. Echemos un vistazo.

Consideremos que bank_emp_details es un nombre de tabla e Id, Name, Bank_name, E_start_date y E_end_date son los campos donde Id es una clave principal y Name es una clave de agrupación.

CREATE TABLE bank_emp_details(
Id int,
Name text,
Bank_name text static,
E_start_date date static,
E_end_date date,
primary key(Id, Name)
); 

Ahora, aquí estamos usando la instrucción Batch para actualizar la columna estática. echemos un vistazo.

BEGIN BATCH 
INSERT INTO bank_emp_details(Id, Name, E_start_date, E_end_date) 
values (201, 'Ashish', '2019-12-06', '2020-12-06');

UPDATE bank_emp_details SET Bank_name = 'ABC'  
where Id = 201 IF Bank_name = NULL;
APPLY BATCH; 

Veamos el resultado de los datos insertados y la columna estática actualizada.

SELECT * 
from bank_emp_details; 

Producción:

Ahora, aquí estamos tratando de actualizar una columna estática con un lote condicional, pero dará un mensaje de error «El lote con condiciones no puede abarcar varias particiones». Echemos un vistazo.

BEGIN BATCH 
INSERT INTO bank_emp_details(Id, Name, E_start_date, E_end_date) 
values (202, 'Ashish', '2019-12-06', '2022-12-06');

UPDATE bank_emp_details SET Bank_name = 'XYZ' 
where Id = 201 IF Bank_name = 'ABC';
APPLY BATCH; 

La consulta anterior devolverá el siguiente mensaje de error que se indica a continuación.

Producción:

Ahora, aquí actualizaremos el valor de la columna estática con un lote condicional que funcionará bien. echemos un vistazo.

BEGIN BATCH 
UPDATE bank_emp_details SET Bank_name = 'XYZ' 
where Id = 201 IF Bank_name = 'ABC';
APPLY BATCH; 

La consulta anterior devolverá el siguiente resultado que se indica a continuación.

Producción:

Veamos el resultado final del lote condicional usando una columna estática. Echemos un vistazo.

SELECT * 
from bank_emp_details; 

Producció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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *