Actualización masiva de contactos en mdp_personas_contactos

Buenos días!

Estamos trabajando en Guaraní 3.21.0, y necesitaríamos actualizar masivamente varios emails y números de teléfonos de personas.

Antes de ejecutar el procedimiento en ambiente TST, quisiéramos confirmar si debemos tener en cuenta alguna vinculación o tabla adicional más allá de mdp_personas_contactos.

Partiríamos de un archivo .csv con todos los datos a actualizar, y ejecutaríamos lo siguiente:

-- Crear tabla temporal
CREATE TEMP TABLE tmp_actualizaciones_contactos (
persona INTEGER,
contacto_tipo VARCHAR,
otros_contactos VARCHAR,
email VARCHAR,
telefono_codigo_area VARCHAR,
telefono_numero VARCHAR);


-- Cargar los datos desde el CSV
\copy tmp_actualizaciones_contactos FROM '/ruta/.../actualizaciones_contactos.csv' CSV HEADER;

-- Verificar los datos cargados
SELECT * FROM tmp_actualizaciones_contactos;


-- Actualizar los registros email - contacto_tipo = 'MP'
UPDATE mdp_personas_contactos m
SET
    email = COALESCE(t.email, m.email)
FROM tmp_actualizaciones_contactos t
WHERE m.persona = t.persona
  AND m.contacto_tipo = t.contacto_tipo
  AND m.contacto_tipo = 'MP';

-- Actualizar los registros teléfono - contacto_tipo = 'C'
UPDATE mdp_personas_contactos m
SET
    telefono_codigo_area = COALESCE(t.telefono_codigo_area, m.telefono_codigo_area),
    telefono_numero = COALESCE(t.telefono_numero, m.telefono_numero)
FROM tmp_actualizaciones_contactos t
WHERE m.persona = t.persona
  AND m.contacto_tipo = t.contacto_tipo
  AND m.contacto_tipo = 'C';

¿Podrían confirmarnos si la lógica es correcta y si hay que considerar alguna otra tabla relacionada?

¡Muchas gracias!

Hola Ariadna, buenas tardes!

Les hago una consulta utilizan moodle? Tienen en cuenta el correo?

Saludos!

Ah, que buena observación!

Si, tenemos Moodle vinculado… asi que antes de definir cuales son los usuarios a actualizar deberíamos corroborar que los emails a actualizar no se estén usando en Moodle.
La mayoría de los que queremos cambia serían usuarios antiguos, graduados… Pero habría que revisar por las dudas. Lo tendríamos en cuanta!

Gracias!!