2010-12-01 11 views
0

で特定のレコードをロック:私は次のようにレコードロックメカニズムを実装しようとしていますMySQLの

Table1: 
    Field: "ID" (AutoIncrement, Primary) 
    Field: "Name" (Text) 
    Field: "More fields..." 

Table2: 
    Field: "ID" (Unique) 

表1に、特定のレコードをロックするためには、私は同じIDと表2にレコードを作成します。このようなレコードがすでに存在しているためにこの作成が失敗した場合、そのレコードは別のプロセスによってロックされなければなりません。成功すれば、私はロックを持っており、レコードを変更することができます。私が終わったら、私はTable2のロックレコードを削除します。

私の質問は、これがレコード単位のロックを実装する有効な方法であるかどうかです。もしそうでなければ、そのようなことはありますか?

乾杯、 チャーリー。

+0


かさえread-lockの代わりに、別のテーブルにロック課すをinnodbを使用することができますあなたのためにこれを行いました - それは無神論的なトランザクションエンジンと呼ばれています –

答えて

1

あなたは、MySQLでの賢い人々がすでに持っている、行ベースのロックのために
(むしろMySQLは競合状態を処理するためにできるようにする)

+0

ありがとう、私は分かりませんでした。 rtfmを持つ必要があります。 –

関連する問題