Entrambi i `rollback` e` savepoint` sono comandi SQL utilizzati per gestire gli stati di transazione, ma servono a scopi diversi.
rollback:
* Scopo: Reimposta il database su uno stato precedente annullando tutte le modifiche apportate all'interno della transazione corrente.
* Ambito: Annulla tutto dall'inizio della transazione.
* Esempio:
`` `sql
- Avvia una transazione
Inizia la transazione;
- Inserire alcuni dati
Inserisci i clienti (nome, e -mail) valori ('John Doe', '[email protected]');
Inserisci i valori degli ordini (CustomerID, OrderDate) (1, '2023-10-27');
- Rollback tutte le modifiche apportate nella transazione
Transazione di rollback;
- Ora, il database è tornato al suo stato prima dell'inizio della transazione.
`` `
SalvaPoint:
* Scopo: Segna un punto specifico all'interno di una transazione per potenziali rollback.
* Ambito: Consente di tornare indietro solo al punto di salvataggio definito, preservando le modifiche apportate dopo di esso.
* Esempio:
`` `sql
- Avvia una transazione
Inizia la transazione;
- Inserire alcuni dati
Inserisci i clienti (nome, e -mail) valori ('Jane Doe', '[email protected]');
- Crea un punto di salvataggio
SavePoint MySavePoint;
- Inserire più dati
Inserisci i valori degli ordini (CustomerID, OrderDate) (2, '2023-10-28');
- rollback al salvataggio
Transazione di rollback a MySavePoint;
- Ora, il database tornerà al suo stato dopo il primo inserto, mantenendo l'ordine effettuato dopo il punto di salvataggio.
`` `
Riepilogo:
| Caratteristica | Rollback | SavePoint |
| --- | --- | --- |
| scopo | Annullare tutte le modifiche nella transazione corrente | Rollback a un punto specifico all'interno della transazione |
| Ambito | Intera transazione | Punto specifico |
| Risultato | Il database ritorna al suo stato prima della transazione | Il database ritorna allo stato a SavePoint |
Differenze chiave:
* `Rollback` senza un punto di salvataggio annulla tutte le modifiche nella transazione.
* `Rollback` con un salvataggio ripristina il database allo stato nel punto di salvataggio, scartando le modifiche apportate dopo di esso.
Quando usare ciò:
* Rollback: Utilizzare quando si desidera scartare tutte le modifiche all'interno di una transazione, in genere a causa di errori o incoerenze di dati.
* SavePoint: Utilizzare quando si desidera rollback in uno stato specifico all'interno di una transazione, preservando le modifiche apportate dopo il salvataggio. Ciò è utile per operazioni complesse in cui è necessario annullare parti specifiche della transazione senza influire sull'intero processo.
software © www.354353.com