Tengo un problema similar de sincronización bidireccional entre una base de datos SQL de Android y una base de datos MySQL. El problema realmente surge cuando se hacen inserciones, porque admite la posibilidad de claves primarias replicadas.
Hace un tiempo construí un sistema que usaba hardware y claves principales GUID basadas en tiempo en lugar de teclas primarias sencillas y monótonamente crecientes. La teoría es que si se insertan nuevos registros en el teléfono usando sqlite, o en el servidor central usando mysql, las claves nunca entrarán en conflicto debido a que son únicas en el mundo.
Desafortunadamente, esto significa que ha entrado en el negocio de administración de claves primarias en lugar de simplemente tomar el automático que viene con ambos motores de DB. Pero, en teoría, este enfoque permite que los datos de muchos teléfonos diferentes se fundan fácilmente en la base de datos central y se redistribuyan nuevamente a todos los teléfonos. Estoy considerando este enfoque para mi problema con Android, aunque todavía estoy esperando encontrar una solución ya creada.
La sincronización de la base de datos es un área muy compleja y amplia. Existen numerosas técnicas y herramientas, todas las cuales implican compromisos de un tipo u otro. En resumen, no hay una respuesta breve a esto, especialmente entre diferentes motores de base de datos. –