セクション 1. 章 3
single
チャレンジ:トランザクション作成
メニューを表示するにはスワイプしてください
銀行システムで2つの口座間で資金を移動する際には、送金元口座からの引き落としと送金先口座への加算が、単一かつ不可分な操作として同時に行われる必要があります。ここでトランザクションの概念が重要となります。トランザクションは複数のSQL文をまとめて実行し、すべてが成功するか、または一切反映されないようにすることで、原子性を維持します。
資金移動には、bank_accounts テーブルを使用します。このテーブルには account_id、owner_name、balance のカラムがあります。トランザクションは以下の手順で実施します:
- トランザクション開始のために
BEGIN文を実行 - 送金元口座に十分な残高があるかを確認
- 十分な残高がある場合、送金元口座から金額を差し引き、送金先口座に加算
- 送金元口座の残高が不足している場合、トランザクションをロールバックし、すべての残高を変更前の状態に戻す
- すべての手順が成功した場合のみ、トランザクションをコミット
この方法により、部分的な更新が発生せず、エラーが発生した場合でもシステムの信頼性が保たれます。
タスク
スワイプしてコーディングを開始
bank_accounts テーブルから指定された金額を一方の口座から他方の口座へ送金する SQL トランザクションの作成。トランザクションはアトミックでなければならず、送金元口座の残高が不足している場合はロールバックされる必要があります。
- 送金元口座の残高を取得し、送金額以上であることを確認。
- 十分な残高がある場合、送金元口座から送金額を減算。
- 送金先口座に送金額を加算。
transfersテーブルに送金記録を保存。- 送金元口座の残高が不足している場合は、トランザクションをロールバックしエラーを発生させること。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 3
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください