java如何在mysql中避免重复而不使用唯一键
这是一个用例,其中唯一密钥约束可以根据帐户而不同。因此,不能使用主键/唯一键约束来实现复制限制
假设表T1有C1、C2、C3、C4、C5列,我们有两个账户A1和A2。A1和A2的数据进入同一个表T1。但是,为了获得帐户A1的独特记录,我们考虑C1和C2列,对于帐户A2,我们考虑C3和C3。像wise一样,我们可以创建许多帐户,每个帐户都有一组不同的列来标识唯一的记录
因此,我们在Java代码中进行了检查。但是,如果有两个重复的并发请求,那么两个Java线程会看到该成员不存在,并且它们都会插入记录,从而产生重复。如何防止此类重复插入
我可以通过使用行级锁或Hibernate的乐观并发来防止更新。我可以考虑使用表级锁来防止此类插入,但会限制应用程序性能,因为它还会阻止更新
# 1 楼答案
将密钥设为主密钥以代替唯一密钥