Sau - Tôi không biết chuyện gì xảy ra - tất cả các mục trong bảng PostGIS của tôi được nhân đôi! Tôi đã thử cách này để xóa chúng nhưng nó không xóa bất kỳ / tất cả các bản sao:
DELETE FROM planet_osm_point
WHERE osm_id NOT IN (SELECT min(osm_id)
FROM planet_osm_point
GROUP BY osm_id)
hoặc này:
DELETE FROM planet_osm_point
WHERE osm_id NOT IN (
select max(dup.osm_id)
from planet_osm_point as dup
group by way);
BIÊN TẬP:
Cuối cùng tôi đã tìm thấy một cách dễ dàng, đó là làm việc trong trường hợp của tôi:
DELETE FROM planet_osm_point WHERE ctid NOT IN
(SELECT max(ctid) FROM planet_osm_point GROUP BY osm_id);
được tìm thấy trên trang này: http://technobytz.com/ most-usiously-postgresql-commands.html
ctid
phương pháp này . Cột này đã được thêm thủ công sau sự kiện sao chép?
planet_osm_point
cấu trúc bảng hiện tại ? có nghĩa là loại cột. Bạn có thể viết mã Python cơ bản để thu thập các cột đã chọn, nếu gặp khó khăn với các hàm SQL.