ストアドプロシージャの「テーブルのロック」に代わるmysql

StackOverflow https://stackoverflow.com/questions/7317449

  •  26-10-2019
  •  | 
  •  

質問

行がまだ存在しない場合は、行をテーブルに挿入する必要があり、ストアドプロシージャを使用してこれを行う必要があります。したがって、行が既に存在するかどうかを確認する必要があります。その後、挿入が続きます。私が避けたいのは、ストアドプロシージャの2人の発信者が行が存在しないことを確認し、両方が行を挿入しようとする人種条件です。

これを解決することについての私の最初の考えは、テーブルをロックすることですが、残念ながら発行することはできません LOCK TABLE ストアドプロシージャ。

クライアント(C#)に重複したキー挿入例をトラップしないでください。

テーブルや代替ソリューションをロックする方法はありますか?

役に立ちましたか?

解決

使用できます

insert into ... on duplicate key

例を見る@thummper回答:

重複するキーを無視しますか?

他のヒント

別のオプションは使用することです

INSERT IGNORE INTO ... 

また、この挿入が2回発生することで違反されるユニークなキーがある限り、二度目は行われません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top