3

問題:

私はグーグルチェックアウトコールバックインターフェースを構築しています。私が抱えている問題は、グーグルが同時に2つの応答をサイトに送り返し、サイトが両方を処理するため、2つの更新が行われることです。コードは、エントリが存在するかどうか、および必要に応じて挿入または更新されないかどうかを確認するために記述されています。

タイムスタンプは同じで、2つのトランザクションが投稿されます。私はInnodbにデータベースを持っていましたが、問題が解決することを期待して、データベースをMyISAMに変更しました。

質問:

SQLクエリを選択してから条件付きで更新することは可能ですか?または、この問題を回避するために他にできることはありますか?

4

2 に答える 2

3

結果を返すEXISTだけの更新を実行するために使用できますselect

 UPDATE TABLE1 SET col=`value` 
 where exists (select 1 from TABLE2 where condition)
于 2012-09-25T23:13:28.983 に答える
0

「Googleは2つの応答を同時に送信する」とはどういう意味かを明確にする必要があると思います。

あなたがGoogleCheckoutAPIを参照していると仮定しますその場合、Googleが送信する各通知は「何か」を表します。何であるかを特定する必要がありNotificationます。つまり、存在しない問題を「修正」し、Googleが送信するものの認識に基づいて修正している可能性があります(それぞれNotificationが異なることに気付くのではなく)。

Hth...。

于 2012-09-26T14:28:44.517 に答える