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

Để bỏ qua các khóa trùng lặp trong quá trình 'sao chép từ' trong postgresql

Sử dụng phương pháp tương tự như bạn đã mô tả, nhưng DELETE (hoặc nhóm, hoặc sửa đổi ...) trùng lặp PK trong bảng tạm thời trước khi tải vào bảng chính.

Một cái gì đó như:

CREATE TEMP TABLE tmp_table 
ON COMMIT DROP
AS
SELECT * 
FROM main_table
WITH NO DATA;

COPY tmp_table FROM 'full/file/name/here';

INSERT INTO main_table
SELECT DISTINCT ON (PK_field) *
FROM tmp_table
ORDER BY (some_fields)

Chi tiết:CREATE TABLE AS , COPY , DISTINCT ON



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đối số tùy chọn trong hàm PL / pgSQL

  2. Cách tránh bị khóa nhà cung cấp đám mây PostgreSQL

  3. Vùng chứa Spring Docker không thể truy cập vùng chứa Postgres Docker

  4. Hàm PostgreSQL cho ID được chèn lần cuối

  5. Cập nhật hoặc Chèn (nhiều hàng và cột) từ truy vấn con trong PostgreSQL