猿问

mysql 怎么防止重复插入呢

使用 unique key 可以保证

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

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


白板的微信
浏览 711回答 7
7回答

暮色呼如

业务简单的话,建另外一张表做锁吧

翻翻过去那场雪

你这种情况应该用业务代码控制,可以参考thinkphp的表单令牌:打开表单页的时候生成一个token值,用session缓存起来,表单里也加一个隐藏域存放这个token,提交时发现这个token重复验证的话就报错。

撒科打诨

1.前端控制,防止按钮重复提交2.数据库加唯一索引 create unique index 索引名 on 表名 (字段名);

SMILET

单机可以用缓存,把这次请求具有唯一性的参数缓存一下,缓存时长自己定。当请求来了先判断这个请求的唯一性参数是否在缓存中,如果在的话就认为这是同一个请求,我们就把这个请求拒绝掉。然后分布式可以把缓存放在redis上。
随时随地看视频慕课网APP
我要回答