Cita:
Iniciado por gnzsoloyo
Bueno, te has topado con uno de los problemas que precisamente debe evitarse....
No. No hay una forma de saltearse el problema. Lo único que puedes hacer es:
1) No propagar los triggers en todas las tablas. Sólo una debe hacer la tarea, y si hay otras que deban hacer lo mismo, no deben ejecutarse al mismo tiempo...
2) Ese tipo de balanceo requiere una tabla de logs, para verificar los cambios que se aplicarán, a fin de que ninguna ejecute un cambio ya realizado. En otras palabras, en alguna parte debe haber una tabla donde se pueda verificar que un cambio ya se impactó en las otras bases.
Infortunadamente, en ese escenario, la única solución práctica es el EVENT (ver manual de referencia), y su correspondiente SP. Si lo intentas por trigger en ese contexto, se producirá un desastre.
Creo que en ese caso lo mejor es que implementes la base concentradora de datos primarios.
Joer.... pues la llevo buena...
Sobre el punto 1).
No puedo hacer eso, piensa que un usuario puede entrar en un subdominio, cambiar hay sus datos. Entonces necesito enviarlos a la BD principal, y luego propagarlos por las demás lo mas rápidamente posible, por si cambiaria de subdominio.
Sobre el punto 2).
Usar el Event, no sirve como solución, a no ser que su periodo sea de 1-3 segundos.
Pero eso podría afectar mucho al rendimiento? Estar comprobando cada 1-3 segundos que se ha cambiado algo en la BD principal?