A と B は、同じページ上の一連のデータに同時にアクセスします。A はデータの 1 つを変更しました。B のページは更新されていないため、B に表示される情報は A が変更される前のものです。この時点で、Bこのデータも変更する必要があります。このデータが変更されたことを B に通知するにはどうすればよいですか。
データを変更する前の最終変更時刻に基づいてこのデータを見つける方法を確認しました (更新時刻 = xxx および ID= xxx の xxx から * を選択します)。見つからない場合は、変更されたことを意味します。確認してください。到着時に説明は変更されていません。
もっと良い方法があるかどうかお聞きしたいのですが?
休止状態での楽観的ロックは、更新が成功するたびにバージョン番号フィールドを使用して実装されていると記憶しています。
更新する前に、まずデータベース内のバージョン番号とバージョンが一致しているかどうかを確認してください。ページに保存されているバージョン番号が同じである場合、バージョン番号が大きくなると、編集中に他のユーザーがデータを変更したことを示すメッセージが表示されます。
もちろん、ペシミスティック ロックを使用することもできます。ページに入るときに、更新に select... を使用して、この時点で、他のユーザーがロックされたレコードを同時に編集することはできません。
これを実行します - フィールド edit_num を追加し、変更ごとに +1 し、B を変更する必要がある場合にそれを比較します。
オプティミスティックロック オプティミスティックロック オプティミスティックロック
オプティミスティックロックメカニズムは、データにバージョンフィールドを追加することで実装されます
データテーブルにフィールドを追加します
update_at
类型为TIMESATMP
,默认值为CURRENT_TIMESTAMP
、他のフィールドを変更する必要はありませんデータが更新されるたびに、値は自動的に更新されます
このデータにバージョン フィールドを追加します。バージョン番号はデフォルトで 0 から始まり、変更されない場合は、このバージョンが送信されるたびにデータベース内のバージョンと一致するかどうかを確認します。
バージョン番号フィールドを xxx テーブルに追加します