Давайте обсудим разницу между операторами 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
- Основное различие между операторами SQL COMMIT и ROLLBACK состоит в том, что выполнение оператора COMMIT делает все изменения, сделанные текущей транзакцией, постоянными. С другой стороны, выполнение ROLLBACK стирает все изменения, сделанные текущей транзакцией.
- После выполнения оператора COMMIT изменение, сделанное транзакцией, не может быть ROLLBACK. Однако после выполнения оператора ROLLBACK база данных достигает своего предыдущего состояния.
- COMMIT выполняется при успешном выполнении операторов транзакции. Однако ROLLBACK выполняется, когда транзакция не выполняется успешно.
Заключение:
Чтобы гарантировать, что изменения, внесенные транзакцией, постоянно сохраняются в базе данных, используйте COMMIT после успешного завершения транзакции. Если во время выполнения транзакция сталкивается с какой-либо ошибкой, а затем для отмены изменений, сделанных транзакцией, используется ROLLBACK.