2017-10-10 8 views
-2

SQLエンジンで重複する異なるシステムから同時に2つの更新ステートメントが実行された場合、SQLのテーブルにはどうなりますか?2つの並行更新(SQL)のテーブルに何が起こる

最初に実行される理由とその理由は何ですか?

+0

最初または2番目がありません。それらが異なる行に影響する場合、それらは同時に実行されます。 – fhossfel

+0

質問は、より多くの "同時実行で同時実行性をSQLがどのように処理するか"です。私はそれを閉じなければならないとは思わない – gbn

答えて

0

は2つの取引は、一つは、常に前または別の後になりますように
と「同時に」がされることはありません。

  • それらは同じ /同じ列(複数可)を変更する場合、それらは異なるを変更する場合、一方は
  • (行バージョン/スナップショットモードに応じて)他のを待ち、そして上書きまたは失敗しますの各行は、それぞれ独立しています。

どちらが先になるのでしょうか?それは実際に同じ瞬間に到着した場合に最初にスケジュールされるものに依存します。

0

クライアントはテーブルを変更しません。クライアントはテーブルを変更しません。次に、これらのステートメントを何らかの順序で実行するのはサーバーの仕事です。

最終結果は、両方とも同じ行を更新する場合です。ステートメントによって異なります。

  • where句がちょうどWHERE id=10の場合、最後のものが最初のものの変更を上書きします。
  • where節がWHERE id=10 and theColumn=knownvalue(ここで、 "knownvalue"はクライアントが知っている限り、その列の以前の値です)のようなものを使用すると、最初のものが勝ち、最後のものは何も更新できません。かわった。
関連する問題