Рекомендуем, 2024

Выбор редакции

Разница между COMMIT и ROLLBACK в SQL

COMMIT и ROLLBACK - это два оператора транзакции, которые используются для выполнения или отмены транзакций. Транзакция может иметь последовательность запросов или операторы обновления, которые изменяют базу данных. Принципиальное различие между COMMIT и ROLLBACK заключается в их работе. Если транзакция успешно выполнена, оператор COMMIT позволяет модификации, выполненной транзакцией в базе данных, стать постоянной. С другой стороны, если транзакция по какой-либо причине действительно выполняется успешно, то оператор ROLLBACK отменяет все обновления, начиная с первого оператора текущей транзакции.

Давайте обсудим разницу между операторами Commit и ROLLBACK в SQL с помощью сравнительной таблицы, показанной ниже.

Сравнительная таблица

Основа для сравненияCOMMITROLLBACK
основной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

  1. Основное различие между операторами SQL COMMIT и ROLLBACK состоит в том, что выполнение оператора COMMIT делает все изменения, сделанные текущей транзакцией, постоянными. С другой стороны, выполнение ROLLBACK стирает все изменения, сделанные текущей транзакцией.
  2. После выполнения оператора COMMIT изменение, сделанное транзакцией, не может быть ROLLBACK. Однако после выполнения оператора ROLLBACK база данных достигает своего предыдущего состояния.
  3. COMMIT выполняется при успешном выполнении операторов транзакции. Однако ROLLBACK выполняется, когда транзакция не выполняется успешно.

Заключение:

Чтобы гарантировать, что изменения, внесенные транзакцией, постоянно сохраняются в базе данных, используйте COMMIT после успешного завершения транзакции. Если во время выполнения транзакция сталкивается с какой-либо ошибкой, а затем для отмены изменений, сделанных транзакцией, используется ROLLBACK.

Top