始める無料で始める

複数文のロールバック

ここでは、トランザクション内で複数の文を使い、RCON2203 に米州政府(US州政府)資産、RCON2236 に海外資産、またはその両方を保有しているかに基づいて、FIELD48 にフラグを設定します。FIELD48 の値は、それぞれ 'US-STATE-GOV''FOREIGN''BOTH' にする必要があります。ただし、両方の場合の文にミスがありました。

この演習はコースの一部です

PostgreSQL におけるトランザクションとエラー処理

コースを見る

演習の手順

  • それぞれの条件を検出してフラグを設定する、3つの UPDATE 文を作成します。
  • 'BOTH' ではなく 'BOOTH' に設定してしまったミスを、トランザクションのロールバックで取り消します。
  • フラグが 'BOOTH' に設定されているレコード数を取得する SELECT を実行します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

-- Begin a new transaction
BEGIN;

-- Update FIELD48 flag status if US State Government deposits are held
UPDATE ffiec_reci
SET ___ = 'US-STATE-GOV'
WHERE RCON2203 > 0;

-- Update FIELD48 flag status if Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = '___'
WHERE RCON2236 > 0;

-- Update FIELD48 flag status if US State Government and Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = 'BOOTH'
WHERE RCON2236 > 0
AND ___ > 0;

-- Undo the mistake
___; 

-- Select a count of records that are booth (it should be 0)
SELECT COUNT(FIELD48)
FROM ffiec_reci
WHERE ___ = 'BOOTH';
コードを編集して実行