sql >> Database >  >> RDS >> PostgreSQL

Dubbele sleutels negeren tijdens 'kopiëren van' in postgresql

Gebruik dezelfde aanpak als beschreven, maar DELETE (of groeperen, of wijzigen ...) duplicaat PK in de tijdelijke tabel voordat deze naar de hoofdtabel wordt geladen.

Iets als:

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)

Details:CREATE TABLE AS , COPY , DISTINCT ON



  1. Hoe MySQL/MariaDB-tabellen te optimaliseren

  2. Gegevens visualiseren

  3. GROUP of DISTINCT na JOIN retourneert duplicaten

  4. SQL Server-databases verplaatsen naar de cloud