Mysql
 sql >> Database >  >> RDS >> Mysql

Rollback nidificato delle transazioni tra due punti di salvataggio?

I punti di salvataggio non faranno quello che vuoi. Quando torni a un punto di salvataggio, tutto ciò che segue il punto di salvataggio viene ripristinato, indipendentemente dal fatto che siano stati creati o meno punti di salvataggio successivi.

Pensa ai punti di salvataggio come a uno "stack". Non puoi estrarre qualcosa dal centro della pila, devi rimuovere tutto fino al livello che desideri.

Probabilmente stai cercando transazioni autonome. Nessuno dei database che desideri utilizzare li supporta. In PostgreSQL puoi aggirare questo problema usando il modulo dblink per creare una nuova connessione al database e lavorare con esso; vedere http://www.postgresql.org/docs/current/static/ dblink.html . Non so quali soluzioni offrono MySQL o SQLite, ma Google ti aiuterà ora che conosci il termine che stai cercando.

Ti consiglio di trovare un modo per aggirare questo requisito di progettazione dell'applicazione, se possibile. Chiedi alla tua applicazione di utilizzare due connessioni al database e due transazioni per fare ciò di cui hai bisogno, avendo cura di coordinare le due come richiesto.