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

Автор: Laura McKinney
Дата создания: 1 Апрель 2021
Дата обновления: 12 Май 2024
Anonim
Курс по SQL. SQL команды BEGIN, COMMIT и ROLLBACK: начало, подтвреждение и откат транзакций
Видео: Курс по SQL. SQL команды BEGIN, COMMIT и ROLLBACK: начало, подтвреждение и откат транзакций

Содержание


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

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

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

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

Основа для сравнения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 еще не выполнен.

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

Заключение:

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