PSQL Programmer's Guide (v11)

レコードのロック (トランザクショナル インターフェイス)

多くの場合、クライアントは受動的並行性で実現されるものより強力な並行性制御を必要とします。そのため、MicroKernel では、クライアントが競合エラーを受け取らずにレコードの更新または削除を行えるようにすることができます。このエラーはステータス コード 80で、このアプリケーションがレコードを読み取った後に別のクライアントがそのレコードを変更したことを示します。これを実現するには、クライアントはロックを要求してレコードを読み取る必要があります。MicroKernel がロックを許可した場合、ロックをかけたクライアントがロックを解除するまで、ほかのクライアントはレコードのロック、更新、削除は行えません。

したがって、操作が一時的にブロックされるためにクライアントが待機しなければならない場合があっても、レコードを更新または削除する機能は保証されます(たとえば、クライアントのレコードと同じデータ ページ上の別のレコードが、まだ実行されている並行トランザクション内の別のアプリケーションで変更される場合に、一時的なブロックが発生する可能性があります)。

クライアントはさまざまな種類のレコード ロックを明示的に要求できます。詳細については、ロックを参照してください。


受動的並行性(パッシブ コンカレンシー) (トランザクショナル インターフェイス)

ユーザー トランザクション (トランザクショナル インターフェイス)