sql >> データベース >  >> RDS >> Mysql

Mysql読み取りロックSELECTFORUPDATE

    名前付きロックを探しています(注意深く危険なものです。本番サーバーでロックを試してはいけません:D)。

    ご覧ください:

    A1 :ロックする一意の文字列を選択し、GET_LOCKを使用します その上(たとえば、GET_LOCK('conversation_' || [id]); 1を返す場合 ロックはあなたのものです。好きなことをして、後でRELEASE_LOCKを呼び出します (エラーを含む、考えられるすべてのシナリオを考慮します。)

    A2 GET_LOCKの2番目のパラメーター のタイムアウトです 。操作がタイムアウトした場合GET_LOCK 0を返します 。

    公式ドキュメントから

    太字は私のものです:

    1. 接続ごとに1つのロックしか保持できないことを意味します(ユーザーの場合は問題ありません)
    2. 閉じるとロックが解除されることを意味します 接続
    3. 2つの異なる接続(同じプールからでも)が一度に同じ外観を取得しない可能性があることを意味します。


    1. エンティティ開発者とADO.NetデータプロバイダーがEntityFrameworkCore5をサポートするようになりました

    2. PostgreSQLで秒単位のタイムスタンプ間の違いを見つける

    3. Slick3.0を使用して単純なデータベースプロシージャを呼び出す

    4. PostgreSQLはtf-idfを使用しますか?