产生完全重复的记录的原因以及解决办法

lei_zeng 2019-01-18 10:01:08
业务场景:
1.当用户完成书写后提交审批。将在待审批的tasks表里面增加一行审批记录。填写字段为:taskid,提交的审批文件的id,发起人id,审批人id,动作,时间,其中时间是getdate,数据库的时间。
2.偶尔一个月左右会出现审批记录会产生2条的情况,很奇怪。
3.数据库:sql server 2012 x64.
4.用户数5000左右。图中的时间是晚上8点多,并发数很小。
...全文
331 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lei_zeng 2019-01-20
  • 打赏
  • 举报
回复
这三点都做过了,我之前也认为重复点击,但时间毫秒不差有点奇怪。
lei_zeng 2019-01-18
  • 打赏
  • 举报
回复
就是普通的insert into values的sql语句。
丰云 2019-01-18
  • 打赏
  • 举报
回复
没有代码,鬼才知道为什么。。。。
吉普赛的歌 2019-01-18
  • 打赏
  • 举报
回复
这种情况一般是程序在表单处没有做禁止重复提交的处理。 一般来说, 表单提交后, 如果速度很快, 是没有问题的。 但如果表单提交速度比较慢, 用户等不及, 又点了一次提交表单, 则出现这种情况。 处理方式: 1. 前端做防重复提交限制:点提交之后, 提交(或保存)按钮应该设置为禁止, 直到提交成功之后, 按钮才能改为可用。 2. 后端数据库设置一个唯一索引。 3. 在提交时判断是否已有相关记录,如果有则不再处理,并提示。 这样有三重保险就绝对没问题了。
dongmusic 2019-01-18
  • 打赏
  • 举报
回复
我也曾经遇到过这个问题,但也一直没有找到答案。
Dear SQL(燊) 2019-01-18
  • 打赏
  • 举报
回复
先去掉重复,需在表中设主键或唯一索引,再插入重复就会报错了
二月十六 2019-01-18
  • 打赏
  • 举报
回复
查看一下出现两条记录时的业务处理,是不是有存在调用两次的情况。 完全相同的加一个触发器判断不插入,但是治标不治本,还是得找到为什么插入了两次。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧