PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

За да игнорирате дублирани ключове по време на „копиране от“ в postgresql

Използвайте същия подход, както описахте, но DELETE (или групирайте, или модифицирайте ...) дублиран PK във временната таблица преди зареждане в основната таблица.

Нещо като:

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)

Подробности: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. Как да получите разлика от дни/месеци/години (datediff) между две дати?

  2. Нов начин за персонализиране на вашия PostgreSQL мониторинг с Prometheus

  3. gem install pg --with-pg-config работи, пакетът се проваля

  4. функцията връща множество колони като една колона вместо множество колони

  5. ФАТАЛНО:удостоверяването на паролата не бе успешно за потребител postgres (postgresql 11 с pgAdmin 4)