読み方 : ロールバックぶん

ROLLBACK文【ROLLBACK statement】

概要

ROLLBACK文とは、データベースのトランザクション処理で行った変更を取り消し、処理を開始する前の状態に戻すためのSQL文。データの追加や更新、削除といった操作を確定させずに破棄することで、データベースの整合性を保つことができる。
ROLLBACK文のイメージ画像

データベースに対する複数の操作を一体不可分の一つのまとまりとして扱う処理を「トランザクション処理」という。ROLLBACK文を発行すると、そのトランザクション内で行われた変更がすべて取り消され、開始直後の状態へ復元される。変更中のデータに掛けられていたロックも解除される。

一方、処理内容に問題がなく変更を確定させる際には「COMMIT文」を用いる。COMMIT文が発行されるまで、トランザクション中に加えた変更は一時的なものとして保留される。ROLLBACK文とCOMMIT文は対になる命令で、いずれかの実行によって一連のトランザクションは成功または失敗として確定・完了する。

ROLLBACK文が使われる典型的な場面として、複数の更新処理を一つのトランザクションとして実行している途中でエラーが発生した場合が挙げられる。例えば、銀行の口座振込処理において、出金は成功したが入金処理で障害が生じた場合、そのままでは残高の整合性が崩れてしまう。この局面でROLLBACK文を実行すれば、出金処理を含めた一連の変更が無効化され、振込前の正確な状態へ戻すことができる。管理者が誤った操作を行った直後の復旧手段としても利用される。

基本的な構文は「ROLLBACK」である。「ROLLBACK WORK」や「ROLLBACK TRANSACTION」といった書き方ができる場合もあるが、利用できる構文はデータベース管理システム(DBMS)によって異なる。トランザクションの途中にSAVEPOINT文で保存地点を設けている場合は、「ROLLBACK TO SAVEPOINT」によって、その地点より後の変更のみを取り消すことも可能である。この場合、トランザクション自体は終了せず、その後の処理を続けられる。ただし、テーブル自体の作成や削除などのDDL文は実行と同時に確定される仕組みのシステムが多く、その場合はROLLBACK文で元に戻すことはできない。

(2026.9.17更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。