2016-10-05 8 views
0

2つのスレッドが同じデータを挿入して選択するのを防ぐ方法はありますか?例えば、T1はまだデータを挿入していませんし、T2はデータがそこにあるかどうかを確認します。 T2とT1は同じデータを挿入できます。2つのスレッド(異なるサーバー上)を同期させてデータを挿入および選択する方法。

+0

挿入するデータベーステーブルにユニーク制約を追加するのはどうですか? – Mureinik

+0

これは、データベーストランザクションの対象です。ユニークな制約を持つことも良いでしょう。 –

+0

私はすでにテーブルに複合主キーを持っています。ユニークな制約の他に他のアイデア? – user2255598

答えて

0

あなたはデータをあなたのデータベースにロックすることを見なければなりません。

あなたは何かに到着します。 T1またはT2が挿入する前にデータを挿入しようとすると、テーブルがロックされ、進行中の作業があることを他の人に知らせます。

Mureinikのように、テーブルに制約を追加します。

+0

データベースレベルでデータがロックされていますか? – user2255598

+0

それは物事が本当に遅くなることはありませんか? @ Zorglube – user2255598

+0

ゆっくり...おそらく、質問は「あなたの必要は何ですか?それに答えると、ソリューションを選択できるようになります。ロック、ユニティシティ、bdd正規化、FiFoリクエストリスト付きの読み書きエンジン、その他。 – Zorglube

関連する問題