カテゴリ: COBOL 更新日: 2025/11/24

COBOLで学ぶCOMMITとROLLBACKの基本!トランザクション管理を理解しよう

COMMITとROLLBACKの基本とトランザクション管理
COMMITとROLLBACKの基本とトランザクション管理

先生と生徒の会話形式で理解しよう

生徒

「先生、COBOLでデータベースにINSERTやUPDATEしたあと、確定させる方法ってありますか?」

先生

「はい、それがCOMMITです。COMMITを実行すると、データベースに加えた変更が確定されます。」

生徒

「逆にやっぱり変更を取り消したいときは?」

先生

「その場合はROLLBACKを使います。ROLLBACKは、コミット前の変更を元に戻す命令です。」

1. トランザクションとは?

1. トランザクションとは?
1. トランザクションとは?

トランザクションとは、データベースに対して行う一連の処理のまとまりです。例えば、銀行の振込処理を考えると、口座Aからお金を引き落とし、口座Bに入金する操作はセットで実行されるべきです。途中で失敗した場合、片方だけ変更されると不整合が起きます。これを防ぐために、COBOLではCOMMITやROLLBACKを使ってトランザクション管理を行います。

2. COMMITとは?

2. COMMITとは?
2. COMMITとは?

COMMITは、データベースに加えた変更を確定させるSQL文です。確定後は元に戻せません。COBOLでは以下のように書きます。


EXEC SQL
    COMMIT
END-EXEC.

例えば、社員情報を追加した後にCOMMITを実行すると、追加したデータがデータベースに保存されます。

3. ROLLBACKとは?

3. ROLLBACKとは?
3. ROLLBACKとは?

ROLLBACKは、コミット前の変更を取り消すSQL文です。途中でエラーが発生した場合や、条件によって変更を無効にしたい場合に使用します。


EXEC SQL
    ROLLBACK
END-EXEC.

例えば、社員情報の更新中にエラーが起きた場合、ROLLBACKを実行すると変更は元に戻ります。

4. トランザクション管理の流れ

4. トランザクション管理の流れ
4. トランザクション管理の流れ

COBOLでデータベース操作を行うときの基本的な流れは以下の通りです。

  1. INSERT、UPDATE、DELETEなどでデータを変更する。
  2. SQLCODEやSQLSTATEでエラーをチェックする。
  3. 問題がなければCOMMITで変更を確定する。
  4. エラーが発生した場合はROLLBACKで変更を取り消す。

この流れを守ることで、安全にデータベースを操作できます。

5. 実践例:社員情報の更新とトランザクション管理

5. 実践例:社員情報の更新とトランザクション管理
5. 実践例:社員情報の更新とトランザクション管理

WORKING-STORAGE SECTION.
01  EMP-ID     PIC 9(4) VALUE 1001.
01  NEW-SALARY PIC 9(5) VALUE 50000.

PROCEDURE DIVISION.
    EXEC SQL
        UPDATE EMPLOYEE
        SET SALARY = :NEW-SALARY
        WHERE EMPLOYEE_ID = :EMP-ID
    END-EXEC.

    IF SQLCODE = 0
        EXEC SQL
            COMMIT
        END-EXEC
        DISPLAY "更新成功:" EMP-ID " の給与を確定しました。"
    ELSE
        EXEC SQL
            ROLLBACK
        END-EXEC
        DISPLAY "更新失敗:" SQLCODE
    END-IF.

更新成功:1001 の給与を確定しました。

この例では、社員IDが1001の給与を更新し、SQLCODEを確認して成功ならCOMMIT、失敗ならROLLBACKしています。トランザクション管理の基本的な流れを理解するのに最適です。

6. 初心者向けポイント

6. 初心者向けポイント
6. 初心者向けポイント

COMMITとROLLBACKは、データベース操作を安全に行うために非常に重要です。エラー発生時にROLLBACKで元に戻す、正常終了時にCOMMITで確定する、という基本の流れを覚えることが大切です。トランザクション管理を理解することで、データの整合性を保ちながら、COBOLでのデータベース操作を安全に行えるようになります。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方