数据重复插入的问题

在实际应用中,我们需要避免用户重复插入的问题。

这个有两种情况第一种是 用户刷新带来的重复插入,第二种是用户连续点击插入button。这两种问题都是现实项目中非常常见的问题。

针对这个问题,有两种解决方法,一种是在所有的插入操作之前,都要进行检验,这种方法带来一个弊端,就是插入数据时,没有生成主键,所以导致判断有点麻烦。

第二种是从源头上解决这两种情况,针对连续点击的问题,好解决用javascript禁掉就可以了,刷新是个麻烦的问题,这个网上有一些解决方案。

如果真的出现重复数据,下面给出一种删除重复数据的方法,非常好用。

select distinct "Day", "Customer", "RequiredUsage", "ApprovedUsage",
       "Comments", "ApprovedBy", "RevisionUsage", "RevisionComments",
       "RevisionTime"   from "DailyUsage_1" where "DailyUsageID" in(
select max("DailyUsageID") from "DailyUsage_1" group by "Day", "Customer", "RequiredUsage", "ApprovedUsage",
       "Comments", "ApprovedBy", "RevisionUsage", "RevisionComments",
       "RevisionTime" having count(*)>1)

这个方法可能需要多次运行直到受影响的行数为0 为止。

原文地址:https://www.cnblogs.com/lorgine/p/1935447.html