防止重复的INSERTS MySQL

时间:2014-06-19 09:31:25

标签: mysql

我有一个表,它使用INSERTS来存储日期的整数。然后用sum(COLUMN)对每个日期求和这些整数,并使用总和。因此,日期不能是唯一的,因为每个日期有很多插入。整数值本身也不是唯一的。

我使用系统来计算条目(例如在餐馆,俱乐部等等)。

一个人在门口拿着一台iPad,并发送一个INSERT命令来输入有多少人(比如一组5人将是一个整数值为5的行和当前日期)。

如果连接错误且iPad发送请求但未收到回答,则用户将再次尝试执行插入操作,从而导致重复。

使用随机字符串/数字/哈希等添加诸如“IDENTIFIER”之类的列是否明智,这将是唯一的,因此如果用户重试插入并且服务器已经有行,它将给出相同的答复,就像插入成功一样。

我无法在处理这些错误时导航逻辑。如果它是一个唯一列上的UPDATE命令,这不会是一个问题,但我构建它的方式实际上是不可能的。

1 个答案:

答案 0 :(得分:1)

以下方法怎么样?

  

客户端:

  1. 为insert-request
  2. 创建GUID
  3. 发送插入请求(值+日期+ GUID)
  4. 等待回复
  5. 收到回复 - >向用户显示确认(“已成功完成”)
  6. 未收到回复 - >请求插入 - 响应(包括guid)
  7. 收到插入 - 响应 - >向用户显示确认(“已成功完成”)
  8. 未收到插入回复 - >重复5。
  9. 响应==“未插入” - >向用户显示错误消息(“错误,再试一次”)
  10.   

    服务器端:

    1. 接收插入请求 - >将数据(值,日期)插入表
    2. 发送确认 - > GUID,好的
    3. OR:接收请求(插入GUID?) - >发送响应guid插入是/否