トランザクションの概念(LOCK文)」からの出題です。例題3.92テーブルsampleにおいて、列idは整数型の主キー、列valはtext型である。UPDATE;を実行した。別のトランザクションから実行したときにロック待ちになるSQL文をすべて選びなさい。sample;※この例題は実際のOSS-DB技術者認定試験とは異なります。つけると、SELECTが返す行を表示する通常の動作に加えて、それらの行のロックを取得します。行のロックを保持している間は、他のトランザクションがその行に対して更新や削除などの操作をすることができなくなります。SELECTが複数の行が返された場合はそのすべてをロックしますが、返されなかった行についてはロックしません。行のロックが取得できなかった場合は、ロックが解放されるまで待たされる、つまりロック待ちの状態になります。選択肢のSQLを順に見ていきましょう。UPDATE句がありませんから、行ロックを取得しません。したがってロック待ちにはなりません。Bはロックされているのと同じ行について、行ロックを取得しようとしています。そのためロック待ちになります。Cはすべての行のval列を更新しようとしていますが、id=1の行について行ロックが取得できず、ロック待ちになります。Dはid=2の行を更新しようとしていますが、この行はロックされていないので、問題なく更新できます。Eはテーブル全体をロックしようとしていますが、テーブルロックと行ロックは競合するため、ロック待ちになります。したがって正解はB、C、Eです。今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。ご質問・ご意見はこちら※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。アーカイブを試験ごとにまとめています。ご紹介OSS-DB認定教材や教育機関について詳しくご説明いたします。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。