由于一开始使用了事务和排它锁所以并未担心出现这样的问题
但是突然发现在没有数据的情况下插入数据会出现重复数据
以为是行锁影响了,将行锁去除后再试竟然没有变化
于是想用其他方式代替select和insert的两条sql
防止重复数据的方法
insert ignore into
on duplicate key update
insert … select … where not exist
replace into
可以上4种都无法解决我的问题,因为我需要获得查询后的id或插入后的id
所以最后尝试什么都不用,只加一个唯一索引
这样担心会报错,所以想如果报错就使用ignore忽略错误,结果没报错
后面在没出现过重复数据,猜测这是mysql解析时的优化。
总结:加上唯一索引足以
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/20912.html
阅读 1653·2021-11-19 09:40
阅读 2908·2021-09-24 10:27
阅读 3201·2021-09-02 15:15
阅读 1857·2019-08-30 15:54
阅读 1183·2019-08-30 15:54
阅读 1351·2019-08-30 13:12
阅读 606·2019-08-28 18:05
阅读 2774·2019-08-27 10:53