PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Xóa bản sao khỏi bảng

Đây là một trong nhiều lý do mà tất cả các bảng phải có khóa chính (không nhất thiết phải là số ID hoặc IDENTITY, mà là sự kết hợp của một hoặc nhiều cột xác định duy nhất một hàng và có tính duy nhất được thực thi trong cơ sở dữ liệu).

Đặt cược tốt nhất của bạn là một cái gì đó như thế này:

SELECT field1, field2, field3, count(*) 
INTO temp_table1
FROM table1
GROUP BY field1, field2, field3 having count(*) > 1

DELETE T1
FROM table1 T1
INNER JOIN (SELECT field1, field2, field3
      FROM table1
      GROUP BY field1, field2, field3 having count(*) > 1) SQ ON
            SQ.field1 = T1.field1 AND
            SQ.field2 = T1.field2 AND
            SQ.field3 = T1.field3

INSERT INTO table1 (field1, field2, field3)
SELECT field1, field2, field3
FROM temp_table1

DROP TABLE temp_table1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể kết nối với PostgreSQL cục bộ

  2. PostgreSQL cách xem truy vấn nào đã chạy

  3. LỖI:quyền bị từ chối đối với chuỗi thành phố_id_seq bằng cách sử dụng Postgres

  4. Liệt kê tất cả tên chỉ mục, tên cột và tên bảng của cơ sở dữ liệu PostgreSQL

  5. So sánh các kiểu cột cơ sở dữ liệu trong MySQL, PostgreSQL và SQLite? (Bản đồ chéo)