sql >> Databasteknik >  >> RDS >> PostgreSQL

Syntaxfel i UPSERT-testkoden

Eftersom detta är det bästa Google-resultatet för fel:

ON CONFLICT DO UPDATE command cannot affect row a second time

Jag kommer att tillägga att det kan orsakas av en duplicerad konflikt VÄRDEN , t.ex.

INSERT INTO distributors (did, dname)
VALUES 
    (5, 'Gizmo Transglobal'), 
    (5, 'Associated Computing, Inc')
ON CONFLICT (did) DO UPDATE SET dname = EXCLUDED.dname;

I det här fallet försöker vi infoga två värden med dim inställd på 5 . Som dim är det index som det inte kan ha konflikt i själva frågan.

Jag stötte på det här felet när jag implementerade mikrotjänster och bearbetningsförfrågningar, några av dem har dubbletter.



  1. kan inte ansluta till mysql på AWS RDS (fel 2003)

  2. PHP/MYSQL Ladda upp, importera .csv-fil till mysql-process-table design

  3. Varför får jag ORA-01401:infogat värde för stort för kolumn - när jag inte infogar?

  4. Skapa lagrad procedur med tabell från ett annat schema kastar PLS-00201