セーブポイントへロールバックする

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

Jason Myers

Principal Engineer

セーブポイントなし

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

UPDATE cost = 500 WHERE name = 'Macaron';

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

セーブポイントと対象ロールバックの使用

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';

SAVEPOINT oops;
UPDATE cost = 500 WHERE name = 'Macaron';
ROLLBACK TO oops;
PostgreSQL におけるトランザクションとエラー処理

完了後にセーブポイントを解放

BEGIN TRANSACTION;

UPDATE cost = 2.33 WHERE name = 'Linga';
UPDATE cost = 2.33 WHERE name = 'Petit-Beurre';
UPDATE cost = 2.33 WHERE name = 'Rosette';

SAVEPOINT oops;

UPDATE cost = 5.00 WHERE name = 'Macaron';
UPDATE cost = 3.50 WHERE name = 'Panellets';
RELEASE SAVEPOINT oops;
PostgreSQL におけるトランザクションとエラー処理

ロールバックとセーブポイントの重要事項

  • TO なしの ROLLBACK はトランザクション全体を取り消します
  • ROLLBACK TO ______ が無効なセーブポイント名だとエラーになります
PostgreSQL におけるトランザクションとエラー処理

演習に進みましょう!

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

Preparing Video For Download...