有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在mysql中避免重复而不使用唯一键

这是一个用例,其中唯一密钥约束可以根据帐户而不同。因此,不能使用主键/唯一键约束来实现复制限制

假设表T1有C1、C2、C3、C4、C5列,我们有两个账户A1和A2。A1和A2的数据进入同一个表T1。但是,为了获得帐户A1的独特记录,我们考虑C1和C2列,对于帐户A2,我们考虑C3和C3。像wise一样,我们可以创建许多帐户,每个帐户都有一组不同的列来标识唯一的记录

因此,我们在Java代码中进行了检查。但是,如果有两个重复的并发请求,那么两个Java线程会看到该成员不存在,并且它们都会插入记录,从而产生重复。如何防止此类重复插入

我可以通过使用行级锁或Hibernate的乐观并发来防止更新。我可以考虑使用表级锁来防止此类插入,但会限制应用程序性能,因为它还会阻止更新


共 (1) 个答案

  1. # 1 楼答案

    将密钥设为主密钥以代替唯一密钥