Нека обсъдим разликата между изразите Commit и ROLLBACK в SQL с помощта на таблицата за сравнение, показана по-долу.
Сравнителна таблица
Основа за сравнение | COMMIT | ROLLBACK |
---|---|---|
Основен | COMMIT потвърждава модификациите, направени от текущата транзакция. | ROLLBACK изтрива модификациите, направени от текущата транзакция. |
ефект | След изпълнение на оператор COMMIT, транзакцията не може да бъде ROLLBACK. | След като ROLLBACK се изпълни, базата данни достига предишното си състояние, т.е. преди изпълнението на първото извлечение от транзакцията. |
явление | COMMIT възниква, когато транзакцията се изпълни успешно. | ROLLBACK се появява, когато транзакцията е прекъсната в средата на изпълнението. |
Синтаксис | COMMIT; | ROLLBACK; |
Определение на COMMIT
COMMIT е SQL оператор, който сигнализира за успешно завършване на транзакция. Когато транзакцията приключи изпълнението си без никакво прекъсване, промените, направени в базата данни, чрез транзакцията става постоянна. Това означава, че базата данни не може да си възвърне предишните състояния, в които преди сключването на първото извлечение е била извършена транзакцията.
Синтаксисът на оператора COMMIT е следният:
COMMIT;
Тъй като последният отчет на транзакцията приключва, транзакцията става частично ангажирана . След това протоколите за възстановяване гарантират, че дори една системна повреда не би могла да създаде база данни, за да направи модификациите постоянни. Веднага щом това бъде проверено, точката за поемане на транзакцията е достигнала и накрая транзакцията влиза в състояние на предаване . След като транзакцията влезе в присвоено състояние, тя не може да бъде възстановена и започва нова транзакция.
Дефиниция на ROLLBACK
Подобно на COMMIT, ROLLBACK също е SQL израз и сигнализира, че транзакцията не е завършена успешно . Следователно транзакцията се прекъсва, за да се отменят направените от транзакцията промени. След изпълнението на ROLLBACK не се запазват модификации, извършени от текущата транзакция.
Синтаксисът на ROLLBACK е както следва:
ROLLBACK;
Транзакцията ROLLBACK става необходима, ако възникне грешка по време на изпълнението на транзакция. Грешката може да бъде сривът на системата, прекъсване на захранването, грешка в отчети за транзакции, срив на системата. В случай на прекъсване на захранването или срив на системата, ROLLBACK се появява, когато системата се рестартира отново. ROLLBACK може да се появи само ако COMMIT все още не е изпълнена.
Ключови разлики между COMMIT и ROLLBACK в SQL
- Основната разлика между операторите COMMIT и ROLLBACK на SQL е, че изпълнението на оператор COMMIT прави всички промени, направени от текущата транзакция, постоянни. От друга страна, изпълнението на ROLLBACK изтрива всички промени, направени от текущата транзакция.
- След като изразът COMMIT е изпълнил модификацията, направена от транзакцията не може да бъде ROLLBACK. Въпреки това, след като операторът ROLLBACK се изпълни, базата данни достига предишното си състояние.
- COMMIT се изпълнява при успешното изпълнение на операторите. Обаче ROLLBACK се изпълнява, когато транзакцията не се изпълни успешно.
Заключение:
За да се гарантира, че промените, направени от транзакцията, се съхраняват постоянно в базата данни, използвайте COMMIT след успешното приключване на транзакцията. В случай, че транзакцията е изправена пред някаква грешка по време на изпълнение, тогава за да отмени промените, направени от транзакцията, се използва ROLLBACK.