He hecho algunas búsquedas y también he leído las preguntas frecuentes en el sitio SQLite, no tuve suerte en encontrar una respuesta a mi pregunta.¿SQLite admite transacciones en múltiples bases de datos?
Podría ser que mi enfoque de base de datos sea defectuoso, pero en este momento, me gustaría almacenar mis datos en múltiples bases de datos SQLite3, por lo que significa archivos separados. Estoy muy preocupado por la corrupción de los datos debido a la posibilidad de que mi aplicación se bloquee, o por un corte de energía en medio de cambios de datos en mis tablas.
Con el fin de garantizar la integridad de los datos, que básicamente tienen que hacer esto:
begin transaction modificar mesa (s) en la base de datos # 1 modificar mesa (s) en la base de datos # 2 confirmar, o revertir si error
¿Es compatible con SQLite? Además, estoy usando sqlite.net, específicamente la última que se basa en SQLite 3.6.23.1.
ACTUALIZACIÓN
Una pregunta más - esto es algo que la gente suele añadir a sus pruebas de unidad? Siempre pruebo las bases de datos, pero nunca he tenido un caso como este. Y si es así, ¿cómo lo harías? Es casi como si tuviera que pasar otro parámetro al método como bool test_transaction, y si es cierto, lanzar una excepción entre los accesos a la base de datos. Luego, realice una prueba después de la llamada para asegurarse de que el primer conjunto de datos no haya ingresado en la otra base de datos. Pero tal vez esto es algo cubierto por las pruebas de SQLite, y debería no aparecer en mis casos de prueba.
No creo que quiere añadir este a las pruebas unitarias. Es como si las transacciones funcionaran bien, no tiene sentido probarlas una y otra vez. Solo haga algunas pruebas iniciales para asegurarse de que las inserciones, actualizaciones, retrocesos, etc. sean correctas y que esté listo para continuar. –
bien, pensé que sería lo mejor. ¡Perfecto! – Dave