データベース
トランザクション処理の説明として正しいものはどれか。BEGIN → INSERT(A実行) → SAVEPOINT sp1 → UPDATE(B実行) → ROLLBACK TO sp1 → COMMIT を行った場合の結果はどれか。
ア.INSERTもUPDATEも両方確定される
イ.INSERTもUPDATEも両方取り消される
ウ.UPDATEのみ確定され、INSERTは取り消される
エ.INSERTのみ確定され、UPDATEは取り消される正解
解説
SAVEPOINTは「チェックポイント機能」。ROLLBACK TO SAVEPOINTは過去のチェックポイントに戻るが、チェックポイントより前の操作は維持される。
なぜ エ が正解か
BEGIN後にINSERT(A)を実行し、SAVEPOINT sp1を設定。その後UPDATE(B)を実行。ROLLBACK TO sp1によってsp1以降(UPDATE)の変更が取り消される。sp1以前のINSERT(A)は残る。最後のCOMMITでINSERT(A)が確定される。
出典: AI生成問題(学習用)