ロック:このロックを保持しているセッションは、テーブルの読み取りおよび書き込みが可能です。このロックを保持しているセッションだけがテーブルにアクセスできます。ロックが解放されるまで、ほかのどのセッションもアクセスできません。ロックが保持されている間、テーブルに対するほかのセッションからのロック要求はブロックされます。修飾子は何の効果もありません。ロックの動作に影響を与えましたが、これは当てはまらなくなっています。これは非推奨になり、使用すると警告が生成されます。ロックより高い優先度を持っています。ロック要求が待たされます。システム変数の小さい値に対して発生する可能性があります。ステートメントが、いずれかのテーブルに対するほかのセッションによって保持されているロックのために待機する必要がある場合、このステートメントはすべてのロックを取得できるまでブロックされます。ステートメントで取得する必要があります。このように取得されたロックが保持されている間、このセッションは、ロックされたテーブルにのみアクセスできます。ステートメントでロックされていないため、このテーブルにアクセスしようとするとエラーが発生します。データベース内のテーブルは例外です。よって取得されたテーブルロックを保持している間であっても、明示的にロックされることなくアクセスできます。つのクエリーで複数回参照することはできません。代わりにエイリアスを使用し、そのテーブルと各エイリアスのための個別のロックを取得します。存在するため、エラーが発生します。テーブルへの参照で異なる名前が使用されるため、成功します。ステートメントがエイリアスを使用してテーブルを参照する場合は、その同じエイリアスを使用してテーブルをロックする必要があります。エイリアスを指定しないでテーブルをロックすることはできません。TABLES逆に、エイリアスを使用してテーブルをロックする場合は、ステートメント内でそのエイリアスを使用してテーブルを参照する必要があります。myalias;テーブルロック解除セッションによって保持されているテーブルロックが解放される場合は、すべてのテーブルロックが一度に解放されます。セッションは明示的にロックを解放できます。特定の状況で、ロックが暗黙的に解放される場合もあります。よって明示的にロックを解放できます。ステートメントを発行した場合は、新しいロックが付与される前に、その既存のロックが暗黙的に解放されます。実行され、既存のロックが解放されます。(テーブルロックとトランザクションの間の通信の詳細は、テーブルロックとトランザクションの通信を参照してください。クライアントが再接続すると、ロックは無効になります。クライアントにアクティブなトランザクションがある場合、サーバーは切断時にそのトランザクションをロールバックし、再接続が発生した場合は、自動コミットが有効になった状態で新しいセッションが開始されます。このため、クライアントは自動再接続を無効にすることが必要になる場合があります。自動再接続が有効な場合、再接続が発生してもテーブルロックまたは現在のトランザクションが失われても、クライアントには通知されません。自動再接続が無効になっている場合は、接続が削除されると、発行された次のステートメントに対してエラーが発生します。クライアントはそのエラーを検出し、ロックの再取得やトランザクションの再実行などの適切なアクションを実行できます。Controlを参照してください。使用すると、そのテーブルがロック解除される場合があります。ロックされていません」が発生する場合があります。番目の変更の前にテーブルを再度ロックします。問題」も参照してください。トランザクションの使用との間で次のように通信します。トランザクションセーフではないため、テーブルをロックしようとする前に、アクティブなトランザクションをすべて暗黙的にコミットします。使用された場合のみです。グローバルな読み取りロックを解放しますが、有効なテーブルロックがないためにトランザクションはコミットされません。開始すると、現在のトランザクションはすべて暗黙的にコミットされ、既存のテーブルロックが解放されます。同じ動作には従いません。グローバルな読み取りロックを解放しません。ステートメント」を参照してください。暗黙的にトランザクションのコミットを発生させるその他のステートメントは、既存のテーブルロックを解放しません。このようなステートメントのリストについては、セクション13.3.3「暗黙的なコミットを発生させるステートメント」を参照してください。呼び出さないことです。読み取る必要がある場合は、次のように実行できます。独自のテーブルロックを取得します。呼び出す必要があります。よって内部のテーブルロックが解放され、デッドロックが非常に発生しやすくなる場合があるため、この指定は行わないようにしてください。内部のテーブルロックをまったく取得しません。テーブルロックを解放しません。よって明示的にテーブルをロックした場合は、トリガーで使用されているテーブルもすべて暗黙的にロックされます。ステートメントによって明示的に取得されるロックと同時に取得されます。トリガーで使用されているテーブルに対するロックは、そのテーブルが読み取りのみに使用されているかどうかによって異なります。読み取りのみに使用されている場合は、読み取りロックで十分です。ない場合は、書き込みロックが使用されます。よって読み取りに対して明示的にロックされているが、トリガー内で変更される可能性があるために書き込みに対してロックする必要がある場合は、読み取りロックではなく書き込みロックが取得されます。(つまり、トリガー内でのテーブルの表示のために必要な暗黙の書き込みロックによって、テーブルに対する明示的な読み取りロック要求が書き込みロック要求に変換されます。トリガーがある場合、トリガー内で使用されるテーブルもロックされます。次のように定義されたトリガーが含まれているとします。このステートメントに現れるためにロックされます。トリガー内で使用されているためにロックされます。ロック要求ごとに、書き込みに対してロックされます。ロックに対するものであったとしても、書き込みに対してロックされます。挿入されるために発生します。トリガー内から読み取られるだけであるため、読み取りに対してロックされます。トリガー内で更新される可能性があるため、書き込みに対してロックされます。ステートメント」を参照してください。ストアドプログラム内では使用できません。ステートメントが有効になっている間、次のステートメントは禁止されます。データベース内のシステムテーブルにアクセスする必要があります。タイムゾーンテーブルの読み取りが必要になる可能性があります。サーバーは、ユーザーが明示的にロックしなくても済むように、必要に応じてシステムテーブルを読み取りに対して暗黙的にロックします。次のテーブルは、今説明したように処理されます。ステートメントで明示的に設定する場合は、そのテーブルがロックされる唯一のテーブルである必要があります。ほかのどのテーブルも、同じステートメントではロックできません。ステートメントはすべてアトミックであるため、通常、テーブルをロックする必要はありません。ステートメントを、ほかのどのセッションも妨げることはできません。テーブルのロックによって利点が得られる可能性のある場合がいくつかあります。テーブルに対して多くの操作を実行しようとしている場合は、使用しようとしているテーブルをロックする方がはるかに高速です。呼び出されるまでフラッシュしないため、そのテーブルに対する挿入、更新、または削除が高速化されます。ステートメントのあとでフラッシュされます。よってロックされたテーブルにどのセッションもアクセスできない点です。使用する必要があります。テーブルに新しい行が挿入される可能性があります。使用してテーブルのロックを回避することもできます。セクション12.15「ロック関数」を参照してください。ロックポリシーの詳細は、セクション8.11.1「内部ロック方法」を参照してください。