天天看点

pg数据库删除重复项

ctid表示数据行在它所处的表内的物理位置,ctid字段的类型是tid。尽管ctid可以快速定位数据行,每次vacuum full之后,数据行在块内的物理位置就会移动,即ctid会发生变化,所以ctid不能作为长期的行标识符,应该使用主键来标识一个逻辑行。

select ctid, * from table 

select distinct uid,  count(*) , *  from table group by uid having count(*) > 1;

select ctid, * from table where ctid in (select min(ctid) from table  group by uid);

delete from table where ctid not in (select min(ctid) from table group by objectid);

查询数据库中重复项

查询不重复的uid,uid的数量,所有数据,以uid数量大于1的数据组合

pg