Nuevos controles de registros repetidos en próxima versión 3.1.0 (RESPONDIDO)

Hola Martin,

En ese caso que tienen dos códigos de catálogos repetidos, el control se realiza por el código de catálogo. Entonces pueden:

  • 1- Renombrar el catálogo que está inactivo a otro código (no recomendado)
  • 2- Eliminar el catálogo repetido inactivo. Pero en este caso primero deben verificar que este código de catálogo no se encuentre referenciado en ningún lugar del sistema, esto pueden chequearlo a través del siguiente procedimiento:

Para cada caso de código repetido, recuperar los catálogos

Reemplazar CODIGO-REPETIDO por el código de catálogo que se visualiza en la query de duplicados SELECT * FROM diaguita.scp_catalogo_bienes_patrimoniales WHERE codigo_completo = CODIGO-REPETIDO;
--Reemplazar ID_CATALOGO_ELIMINAR por el id del catálogo duplicado a chequear

select count() from diaguita.scp_solicitud_alta_bien_patrimonial_detalles where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;
select count(
) from diaguita.scp_alta_bien_patrimonial_detalles where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;
select count() from diaguita.scp_bienes_patrimoniales where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;
select count(
) from diaguita.scp_amortizacion_detalles where id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;

Si algunas de las consultas anteriores devuelve más de 1, es decir que tiene alguna referencia desde la tabla consultada, se debe eliminar la referencia al catálogo a eliminar, por el catálogo que va a quedar, esto pueden realizarlo por medio de los siguientes sql:
NOTA: sólo utilizar el update para la tabla donde el punto anterior haya devuelto un valor mayor a 0.

UPDATE diaguita.scp_solicitud_alta_bien_patrimonial_detalles SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR; UPDATE diaguita.scp_alta_bien_patrimonial_detalles SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR; UPDATE diaguita.scp_bienes_patrimoniales SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR; UPDATE diaguita.scp_amortizacion_detalles SET id_catalogo_bien_patrimonial=ID_CATALOGO_QUEDA WHERE id_catalogo_bien_patrimonial=ID_CATALOGO_ELIMINAR;

Finalmente, se puede proceder a eliminar el registro del catálogo duplicado:

DELETE FROM diaguita.scp_catalogo_bienes_servicios_bienes_patrimoniales WHERE id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR; DELETE FROM diaguita.scp_catalogo_bienes_patrimoniales WHERE id_catalogo_bien_patrimonial = ID_CATALOGO_ELIMINAR;

Les recomendamos que este procedimiento primero lo realicen en un servidor de pruebas y verifiquen que los resultados sean los esperados antes de aplicarlo en producción.

Saludos,
Fernando.