我有一张 table

CREATE TABLE meta.fk_payment1
(
  id serial NOT NULL,
  settlement_ref_no character varying,
  order_type character varying,
  fulfilment_type character varying,
  seller_sku character varying,
  wsn character varying,
  order_id character varying,
  order_item_id bigint,
   ....
  );

我从 csv 文件中插入数据,其中所有列都相同而不是
编号列

如果 csv 文件上传超过一次,则数据将重复。

但 id 不会,而 id 是主键。

所以我想在不使用主键的情况下删除所有重复的行。

我必须在一张 table 上做这个

最佳答案

将不同的数据复制到工作表 fk_payment1_copy 。最简单的方法是使用 into

SELECT max(id),settlement_ref_no ...
INTO fk_payment1_copy
from fk_payment1
GROUP BY settlement_ref_no ...

删除 fk_payment1 中的所有行
delete from fk_payment1

并将数据从 fk_payment1_copy 表复制到 fk_payment1
insert into fk_payment1
select id,settlement_ref_no ...
from fk_payment1_copy

关于sql - 从没有主键的 Postgresql 表中删除重复记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30161405/

10-16 22:42
查看更多