MySQL のオプティミスティック ロックについて
オプティミスティック ロックは、複数のユーザーが同じデータを更新しようとしたときに競合を防ぐのに役立つプログラミング手法です。データベース。 MySQL はオプティミスティック ロックをネイティブにサポートしていませんが、標準 SQL ステートメントを使用して実装できます。
オプティミスティック ロックの実装
通常、オプティミスティック ロックは既知のメカニズムを通じて実現されます。バージョンチェックとして。これには、データが最初に取得されてから別のユーザーによって変更されているかどうかを確認することが含まれます。このチェックは、更新を適用する前に実行され、データの最新バージョンが変更されていることを確認します。
オプティミスティック ロックを実装する手順
MySQL でオプティミスティック ロックを実装するには
例
例は次のとおりです。 MySQL でのオプティミスティック ロックの実装:
# Select data
SELECT id, name, version
FROM users
WHERE id = 1;
# Calculate updated values
new_name = 'John Doe'
new_version = version 1
# Update data with version check
UPDATE users
SET name = @new_name,
version = @new_version
WHERE id = 1
AND version = @old_version;
# Check affected rows
SELECT ROW_COUNT() AS affected_rows;
# Handle conflict
IF affected_rows = 0
BEGIN
-- Conflict occurred
-- Handle the conflict here
END;
ELSE
BEGIN
-- Update successful
-- Continue with the application logic
END;
バージョン チェックの代替案
バージョン チェックに加えて、次のような楽観的ロックを実装する代替案もあります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3