mysql 怎么防止重复插入呢

2019-05-17 10:42:44 +08:00
 noble4cc

使用 unique key 可以保证

但是不使用唯一 key 的情况并且在并发提交的情况下怎么防止重复插入呢?

比如浏览器卡了一下,导致用户重复点击提交了

9818 次点击
所在节点    MySQL
47 条回复
momocraft
2019-05-17 14:37:03 +08:00
实施难度和风险和效果看 unique key 还不错?
loveCoding
2019-05-17 14:44:41 +08:00
数据库层 唯一约束
应用层 分布式锁
arthas2234
2019-05-17 14:56:06 +08:00
重复提交这个事,不应该用 unique key 来防御,建议使用 token
rockyou12
2019-05-17 15:07:54 +08:00
纯 rest,直接请求里带一个 requestId,由前端生成的 uuid。如果表(或者放 redis 或直接后端缓存下)已经出现,就直接拒绝
seanpan
2019-05-17 17:33:25 +08:00
表单令牌
lusi1990
2019-05-17 18:35:36 +08:00
用锁或者队列 ,插入前判断
JohnYehyo
2019-05-23 17:05:54 +08:00
服务器生成 token 存入表单隐藏字段 表单提交 服务器端获取该值与 token 比较 一致则进行业务处理并在 session 删掉 token

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/564960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX