sql >> Database teknologi >  >> RDS >> PostgreSQL

Bedste måde at forhindre duplikerede data på kopi csv postgresql

Ophæv

Svar af Linoff er korrekt, men kan forenkles en smule ved Postgres 9.5 nye ”UPSERT“-funktion (a.k.a. FLET ). Den nye funktion er implementeret i Postgres som kode>INSERT ON CONFLICT syntaks.

I stedet for eksplicit at kontrollere for overtrædelse af det unikke indeks, kan vi lade ON CONFLICT klausul opdage overtrædelsen. Så GØR vi INTET , hvilket betyder, at vi opgiver bestræbelserne på at INSERT uden at prøve at prøve en OPDATERING . Så hvis vi ikke kan indsætte, går vi bare videre til næste række.

Vi får de samme resultater som Linoffs kode, men mister WHERE klausul.

INSERT INTO bigtable(col1, … )
    SELECT col1, …
    FROM stagingtable st
ON CONFLICT idx_bigtable_col1_col2_col
DO NOTHING
;


  1. Hvordan installeres flask-mysql til python3?

  2. C# og MySql integration

  3. hvordan man formaterer datofelt i MYSQL

  4. Postgresql:FATAL:rolle findes ikke