DB2数据库有一个表数据重复插入了三次,我想要去掉重复项,只要一份值

DB2数据库有一个表数据重复插入了三次,我想要去掉重复项,只要一份值,第1张

这个你得先看看这张表有没有和其他表建立关联关系,有没有外键关联。如没有外键关联,这表的数据是独立存在的,那么就可以直接删除。如果有关联表的话,得同时兼顾关联表的数据一同删除。还是得从数据库设计上分析。

另外要避免重复插入相同数据的情况,得对相关的字段建立唯一约束。

select id,count(*) from tablename

group by id

having count(*)>1

就可以查出ID相同的了。

不过,不太明白,你用的什么数据库,反正我从来用过的数据库,ID为自增项的,必为主键之一,如果你的ID单纯做为主键,那是不可能重复的,所以你肯定还有其它的主键进行区分了。

另一种情况,ID不为主键,自增加的,就有可能是争抢单号造成的,我以前做过的项目里就有过这种情况,二个客户端同时录入一种单据,同时保存时会有机率产生由于挣抢单据号造成的单号重复而无法保存。

楼主还是检查一下你的程序吧。应该是你的程序在取ID号时有问题,造成同ID号。

对结果集的查询SQL如下:假设表明为 table

第一步 取出q1,q3,q6的acno:select Min(acno),cifno from table group by cifno

第二步 嵌套获取结果集: 

select * from table where acno in 

(select Min(acno) from table group by cifno)

如果上述结果集是SQL得来的,做下替换就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6766879.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存