1Z0-071 · Silver SQL
DML文を使用した表の管理
★★★☆☆複数選択
Q15of 20
トランザクションを終了する条件はどれですか。(複数選択) — Silver SQL 問15
トランザクションを終了する条件はどれですか。(複数選択)
Choices選択肢
- ACOMMIT正解
- BEXIT正解
- CROLLBACK(SAVEPOINT句なし)正解
- DCREATE正解
- EROLLBACK(SAVEPOINT句あり)
Answer
正解は、A,B,C,Dです
Explanation解説
トランザクションが終了する条件は次のとおりです:
- COMMIT文 が正常に実行された
- ROLLBACK文(SAVEPOINT句なし) が正常に実行された
- EXIT文 が正常に実行された(セッション終了に伴う暗黙的なコミット)
- DDL(CREATE/DROP/ALTER 等) が実行された(暗黙的なコミットを伴う)
- DCL(GRANT/REVOKE) が実行された
- クライアントから切断された/障害が発生した
SAVEPOINT句ありのROLLBACK は終了しない:
ROLLBACK TO SAVEPOINT sp1 は、指定したセーブポイントまでの変更を取り消すだけで、トランザクション自体は継続 します。
例:
INSERT INTO emp VALUES (1, '田中');
SAVEPOINT sp1;
INSERT INTO emp VALUES (2, '鈴木');
ROLLBACK TO SAVEPOINT sp1; -- 鈴木のINSERTのみ取り消し、トランザクションは継続中
-- ここでまだ田中のINSERTは確定していない
COMMIT; -- ここでトランザクション終了、田中のINSERTが確定DDL が暗黙的なコミットを伴う点も合わせて押さえておきましょう。