0

我有一个Flash游戏;一个用户有很多物品;每个项目都是数据库表中的一行,其中包含列:

id - user_id - item_type_id - quantity

每次用户获得一个项目时,我都会在数据库上执行选择以检查用户是否已经拥有该项目类型的行。如果不存在,则插入,否则增加数量并提交;一切总是在一个事务中。

有时,当游戏流量大时,会出现重复的项目行。现在,我执行选择以检查重复行以合并数量并删除重复行。

  • 这个问题是怎么发生的?
  • 我怎样才能防止问题发生?

我正在使用 MySQL。

4

2 回答 2

4

您需要确保列对user_iditem_type_id. 否则,系统可能允许重复条目,正如您发现的那样。

于 2012-04-21T12:38:31.350 回答
1

为了避免在需要更新时尝试插入时出错,您可以使用 ON DUPLICATE 子句。请参阅链接以了解如何使用它。

于 2012-04-21T13:03:55.177 回答