ホームページ  >  記事  >  データベース  >  mysqlで悲観的ロックを実装するにはどうすればよいですか?

mysqlで悲観的ロックを実装するにはどうすればよいですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-06-29 15:25:226372ブラウズ

Mysql 悲観的ロック方法: 1. 最初に [select ... for update] を使用してロックし、操作が完了したら commit を使用してロックを解放します。その後、innodb エンジンはデフォルトで行レベルに設定されます。 lock; 最終的にデータが見つからない場合は、テーブルをロックしないでください。

mysqlで悲観的ロックを実装するにはどうすればよいですか?

mysql 悲観的ロック メソッド:

1. トランザクションの開始

begin;/begin work;/start transaction; (三者选一就可以)

2. クエリ出力製品情報

select status from table where id=1 for update;

3. 製品情報に基づいて注文を生成

insert into table111 (id,goods_id) values (null,1);

4. 製品ステータスを2

update table set status=2 where id=1;

5に変更します。トランザクションを送信

commit;/commit work; (任选一种释放锁)

概要:

1. ロックの更新に select... を使用して悲観的ロックを実装し、操作の完了後に commit を使用してロックを解放します;

2. Innodbエンジン、デフォルトでは行レベルのロック、クリアなフィールドがある場合、クエリ条件または条件がない場合は行がロックされます;

フィールドが不明瞭な場合、テーブル全体がロックされます。そして、条件が範囲の場合、テーブル全体がロックされます;

3. データが見つからない場合、テーブルはロックされません。

関連する学習に関する推奨事項: mysql ビデオ チュートリアル

以上がmysqlで悲観的ロックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。