Cerchiamo di discutere la differenza tra le dichiarazioni Commit e ROLLBACK in SQL con l'aiuto del grafico di confronto mostrato di seguito.
Grafico comparativo
Base per il confronto | COMMETTERE | ROLLBACK |
---|---|---|
Di base | COMMIT convalida le modifiche apportate dalla transazione corrente. | ROLLBACK cancella le modifiche apportate dalla transazione corrente. |
Effetto | Dopo l'esecuzione dell'istruzione COMMIT, la transazione non può essere ROLLBACK. | Una volta eseguito ROLLBACK, il database raggiunge il suo stato precedente, ossia prima dell'esecuzione della prima istruzione della transazione. |
avvenimento | COMMIT si verifica quando la transazione viene eseguita correttamente. | ROLLBACK si verifica quando la transazione viene interrotta nel mezzo dell'esecuzione. |
Sintassi | COMMETTERE; | ROLLBACK; |
Definizione di COMMIT
COMMIT è un'istruzione SQL, che segnala il completamento positivo di una transazione. Ogni volta che una transazione completa la sua esecuzione senza interruzioni, le modifiche apportate al database, dalla transazione diventano permanenti. Ciò significa che il database non può recuperare i suoi stati precedenti in cui era, prima dell'esecuzione della prima affermazione, della transazione.
La sintassi dell'istruzione COMMIT è la seguente:
COMMETTERE;
Quando l'ultima dichiarazione della transazione termina, la transazione diventa parzialmente impegnata . Successivamente, i protocolli di ripristino assicurano che, anche in caso di errore del sistema, il database non sia in grado di rendere permanenti le modifiche. Non appena viene verificato, il punto di commit della transazione ha raggiunto e, infine, la transazione entra in uno stato di commit . Una volta che la transazione entra in uno stato di commit, non è possibile eseguire il rollback e inizia una nuova transazione.
Definizione di ROLLBACK
Come COMMIT, anche ROLLBACK è un'istruzione SQL e segnala che la transazione non è stata completata correttamente . Quindi, la transazione viene interrotta per annullare le modifiche apportate dalla transazione. Dopo l'esecuzione di ROLLBACK, nessuna modifica, effettuata dalla transazione corrente, viene mantenuta.
La sintassi di ROLLBACK è la seguente:
ROLLBACK;
La transazione ROLLBACK diventa necessaria se si verifica un errore durante l'esecuzione di una transazione. L'errore può essere l'errore di sistema, l'interruzione di corrente, l'errore nelle istruzioni di transazione, l'arresto anomalo del sistema. In caso di interruzione di corrente o arresto anomalo del sistema, il ROLLBACK si verifica quando il sistema si riavvia nuovamente. ROLLBACK può verificarsi solo se COMMIT non è stato ancora eseguito.
Differenze chiave tra COMMIT e ROLLBACK in SQL
- La principale differenza tra le istruzioni COMMIT e ROLLBACK di SQL è che l'esecuzione dell'istruzione COMMIT rende permanenti tutte le modifiche apportate dalla transazione corrente. D'altra parte, l'esecuzione di ROLLBACK cancella tutte le modifiche apportate dalla transazione corrente.
- Una volta eseguita la dichiarazione COMMIT, la modifica apportata dalla transazione non può essere ROLLBACK. Tuttavia, una volta eseguita l'istruzione ROLLBACK, il database raggiunge il suo stato precedente.
- COMMIT viene eseguito sull'esecuzione corretta delle istruzioni di transazione. Tuttavia, il ROLLBACK viene eseguito quando la transazione non viene eseguita correttamente.
Conclusione:
Per garantire che le modifiche apportate dalla transazione vengano salvate in modo permanente nel database, utilizzare COMMIT dopo il completamento con esito positivo della transazione. Nel caso in cui la transazione riscontri eventuali errori durante l'esecuzione, per annullare le modifiche apportate dalla transazione, viene utilizzato ROLLBACK.