データベース操作を安全に行うためには、トランザクションの理解が不可欠です。特にPostgreSQLでは、複数の操作をまとめて実行し、必要に応じてロールバックできる仕組みが整っています。
この記事では、PostgreSQLでトランザクションを開始するSQLの書き方や実践例をわかりやすく解説します。
PostgreSQLのトランザクションとは何か
トランザクションとは、複数のSQL操作を1つのまとまりとして扱い、全て成功した場合のみデータベースに反映される仕組みです。
もし途中でエラーが発生した場合は、全ての操作を取り消すことができるため、データの整合性を保つことができます。
トランザクションを開始する基本SQL
PostgreSQLでトランザクションを開始するには、BEGIN;というSQLを使用します。
例:
BEGIN;INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;COMMIT;
この例では、ユーザー追加と口座残高の更新を1つのトランザクションとして扱っています。
トランザクションの制御:COMMITとROLLBACK
トランザクションで行った変更を確定させるには COMMIT; を使用します。
逆に、何らかの理由で変更を取り消す場合は ROLLBACK; を使います。
例:
BEGIN;DELETE FROM orders WHERE order_id = 123;-- エラーが発生した場合ROLLBACK;
実践的な例: トランザクションの活用
複数のテーブルを更新する際にトランザクションを使うと、どれか1つの操作が失敗してもデータの不整合を防げます。
例えば、商品購入処理では在庫の更新と購入履歴の登録を同時に行い、どちらかに問題があれば全て取り消すことが可能です。
まとめ
PostgreSQLでトランザクションを開始するSQLは BEGIN; です。トランザクションを理解し適切に使うことで、データの整合性を保ちながら安全な操作が可能になります。
トランザクションはCOMMITで確定し、ROLLBACKで取り消せるため、データベース操作における強力なツールです。正しい使い方を覚えて実践的に活用しましょう。


コメント