せっかく、perlの排他制御とか書いたので

mysqlも書いてみようとおもふ

 

まずは、プロンプトを2つ開いて、以下のコマンドを両方に打つ

 

mysql> SET AUTOCOMMIT = 0;
mysql> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

 

そんでもって、1つ目のwindowで以下のように打つ

ちなみに、list2テーブルの中身はこんな感じ

 

mysql> SELECT * FROM list2;
+----+------+
| id | memo |
+----+------+
|  1 | a    |
|  2 | b    |
|  3 | c    |
+----+------+
3 rows in set (0.01 sec)

 

では、Lockをっ!!

 

 

mysql> SELECT * FROM list2 WHERE id = 2 FOR UPDATE;

 

そこで、2枚目も同じコマンドを打つと・・・

結果が返ってこない・・・というか、見事Lockされてる

パチパチパチwww

ちなみに、1枚目で

 

mysql> COMMIT;

 

を打つと、2枚目の結果が返ってきます

参考になりましたかな??

 

トラックバック(0)

このブログ記事を参照しているブログ一覧: mysqlの排他制御

このブログ記事に対するトラックバックURL: http://modperlis.bounceme.net/mt/mt-tb.cgi/27

コメントする


画像の中に見える文字を入力してください。

スポンサー

Perl 勉強本

Oracle 勉強本

J2EE 勉強するなら、これしかなくね?

ブログ管理人

SE perler@29

アイテム

  • image001.gif
  • modperl.png

アドパートナー

tooland

Pingo!

boox