HOME > 受験対策 > サンプル問題/例題解説 > Silverの例題解説「開発/SQL」 > トランザクションの概念(LOCK文)

Silverの例題解説「開発/SQL - トランザクションの概念(LOCK文)」

今回は、Silverの「開発/SQL - トランザクションの概念(LOCK文)」からの出題です。

例題

Q. トランザクション内でLOCK TABLE sample;
を実行し、テーブルsampleの排他ロックを取得した。このロックが解放されるのはどういう場合か。正しいものを3つ選びなさい。
  1. A. COMMIT; を実行したとき。
  2. B. RELEASE TABLE sample; を実行したとき。
  3. C. ROLLBACK; を実行したとき。
  4. D. UNLOCK TABLE sample; を実行したとき。
  5. E. Ctrl+Dあるいは \q を入力して psql のセッションを終了したとき。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2018年9月25日

解答と解説

トランザクション内で LOCK TABLE table_name あるいは単に LOCK table_name を実行すると、テーブルの排他ロックを取得することができます。オプションで IN lockmode MODE を指定することで、排他以外のロックを取得することもできます。
このロックはトランザクションが終了することでのみ解放されます。すなわち、COMMITやROLLBACKを実行したとき、あるいはセッション終了などにより自動的にロールバックされたなどです。UNLOCKやRELEASEのような、個別にロックを解放するコマンドはありません。

したがって正解はA、C、Eです。

  • 今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

ページトップへ