在实际应用中,我们需要避免用户重复插入的问题。
这个有两种情况第一种是 用户刷新带来的重复插入,第二种是用户连续点击插入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 为止。