Differenza tra COMMIT e ROLLBACK in SQL

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 4 Maggio 2024
Anonim
Transactions in #PostgreSQL #COMMIT #ROLLBACK #SQLTransaction #Differences between commit & rollback
Video: Transactions in #PostgreSQL #COMMIT #ROLLBACK #SQLTransaction #Differences between commit & rollback

Contenuto


COMMITand ROLLBACK, sono le due dichiarazioni transazionali utilizzate per eseguire o annullare le transazioni. Una transazione può avere una sequenza di query oppure può contenere le istruzioni di aggiornamento che modificano il database. La differenza fondamentale tra COMMIT e ROLLBACK sta nel loro funzionamento. Se la transazione viene eseguita correttamente, il COMMETTERE L'istruzione consente di rendere permanenti le modifiche apportate dalla transazione nel database. D'altra parte, se la transazione per qualche motivo viene eseguita correttamente, allora ROLLBACK L'istruzione annulla tutti gli aggiornamenti, a partire dalla prima istruzione della transazione corrente.

Discutiamo la differenza tra le istruzioni Commit e ROLLBACK in SQL con l'aiuto del grafico di confronto mostrato di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoCOMMETTEREROLLBACK
Di baseCOMMIT convalida le modifiche apportate dalla transazione corrente.ROLLBACK cancella le modifiche apportate dalla transazione corrente.
EffettoDopo l'esecuzione dell'istruzione COMMIT, la transazione non può essere ROLLBACK.Una volta eseguito ROLLBACK, il database raggiunge il suo stato precedente, ovvero prima dell'esecuzione del primo estratto conto della transazione.
avvenimentoCOMMIT si verifica quando la transazione viene eseguita correttamente.ROLLBACK si verifica quando la transazione viene interrotta nel mezzo dell'esecuzione.
SintassiCOMMETTERE;ROLLBACK;

Definizione di COMMIT

COMMETTERE è un'istruzione SQL che segnala il riuscito completamento di una transazione. Ogni volta che una transazione completa la sua esecuzione senza alcun interruzione, le modifiche apportate al database dalla transazione diventano permanenti. Ciò significa che il database non può riguadagnare i suoi stati precedenti in cui era, prima dell'esecuzione della prima istruzione, della transazione.


La sintassi dell'istruzione COMMIT è la seguente:

COMMETTERE;

Al termine dell'ultimo estratto conto, la transazione diventa parzialmente impegnato. Successivamente, il protocolli di recupero assicurarsi che anche un errore del sistema non possa impedire al database di rendere permanenti le modifiche. Non appena questo viene verificato, il punto di commit della transazione è stata raggiunta e infine la transazione entra in a stato commesso. Una volta che la transazione entra in uno stato di commit, non può essere ripristinata e inizia una nuova transazione.

Definizione di ROLLBACK

Come COMMIT, ROLLBACK è anche un'istruzione SQL e segnala che ha la transazione non stato completato con successo. Quindi, la transazione è abortito per annullare le modifiche apportate dalla transazione. Dopo l'esecuzione di ROLLBACK, non vengono mantenute modifiche apportate dalla transazione corrente.


La sintassi di ROLLBACK è la seguente:

ROLLBACK;

Transaction ROLLBACK diventa necessario se si verifica un errore durante l'esecuzione di una transazione. L'errore può essere un errore del sistema, un'interruzione dell'alimentazione, un errore nelle dichiarazioni di transazione, un arresto anomalo del sistema. In caso di interruzione di corrente o crash del sistema, il ROLLBACK si verifica al riavvio del sistema. ROLLBACK può verificarsi solo se COMMIT non è ancora stato eseguito.

  1. La differenza principale 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.
  2. Una volta eseguita l'istruzione COMMIT, la modifica apportata dalla transazione non può essere ROLLBACK. Tuttavia, una volta eseguita l'istruzione ROLLBACK, il database raggiunge il suo stato precedente.
  3. COMMIT viene eseguito sulla corretta esecuzione degli estratti conto. Tuttavia, il ROLLBACK viene eseguito quando la transazione non viene eseguita correttamente.

Conclusione:

Per garantire che le modifiche apportate dalla transazione vengano salvate permanentemente nel database, utilizzare COMMIT dopo il completamento con esito positivo della transazione. Nel caso in cui la transazione riscontri errori durante l'esecuzione, quindi per annullare le modifiche apportate dalla transazione, viene utilizzato ROLLBACK.