问题:
我正在构建一个谷歌结帐回调接口。我遇到的问题是谷歌同时将 2 个响应发送回站点,并且站点处理了这两个响应,所以我最终得到了 2 个更新。编写代码以检查条目是否存在,以及它是否没有根据需要插入或更新。
时间戳将是相同的,它将发布 2 笔交易。我在 Innodb 有数据库,但我将其更改为 MyISAM,希望它能解决问题。
问题:
是否可以选择 SQL 查询,然后根据条件进行更新。或者我还能做些什么来解决这个问题?
问题:
我正在构建一个谷歌结帐回调接口。我遇到的问题是谷歌同时将 2 个响应发送回站点,并且站点处理了这两个响应,所以我最终得到了 2 个更新。编写代码以检查条目是否存在,以及它是否没有根据需要插入或更新。
时间戳将是相同的,它将发布 2 笔交易。我在 Innodb 有数据库,但我将其更改为 MyISAM,希望它能解决问题。
问题:
是否可以选择 SQL 查询,然后根据条件进行更新。或者我还能做些什么来解决这个问题?
您可以使用EXIST
仅对select
返回结果执行更新
UPDATE TABLE1 SET col=`value`
where exists (select 1 from TABLE2 where condition)
我认为您需要澄清“Google 同时发送 2 个响应”的含义。
我假设您指的是Google Checkout API - 如果是这样,Google 发送的每个通知都代表“某事”。您必须确定是什么Notification
- 换句话说,您可能会根据您对 Google 发送的内容的看法“修复”一个不存在的问题(而不是注意到它们每个Notification
都是不同的)。
嗯……