「S3 開発/SQL - S3.3 トランザクションの概念(トランザクションの構文)」からの出題です。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2022年12月28日
トランザクションはBEGIN(またはSTART TRANSACTION)で開始、COMMITで終了、あるいはROLLBACKで中止、という流れになりますが、これらの他にSAVEPOINTというデータの一時保存機能があります。
複雑なトランザクションでは、データの内容によって処理の流れを変え、ある時点以降の更新だけをキャンセルしてやり直す、といったことができると便利なことなあります。そんなときに一時保存のSAVEPOINTを使用します。
SAVEPOINTはセーブポイント名をパラメータとして指定して、SAVEPOINT name の形式で使用し、その時点に戻る(つまり一時保存以降の更新を破棄する)ROLLBACK TO nameと対になります。SAVEPOINT、ROLLBACK TOのいずれでもセーブポイント名は必須です。
セーブポイント名は同じものを繰り返し使用しても構いません。その場合、セーブポイントが上書きされ、以前の一時保存の状態は失われます(それより後の状態で一時保存されるので、データが失われるわけではありません)。
ROLLBACK TO nameではなく、ROLLBACKを実行すると、SAVEPOINTがあっても、それは破棄され、トランザクションでのすべての更新が破棄されます。
COMMITはSAVEPOINTの有無に関わらず、トランザクション内のすべての更新を確定して書き込みます。
従って正解はC、D、Eです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.