sql >> Database >  >> RDS >> PostgreSQL

Syntaxisfout in UPSERT-testcode

Aangezien dit het beste Google-resultaat voor fouten is:

ON CONFLICT DO UPDATE command cannot affect row a second time

Ik zal hieraan toevoegen dat het kan worden veroorzaakt door een duplicaat conflict VALUES , bijv.

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

In dit geval proberen we twee waarden in te voegen met dim ingesteld op 5 . Als dim is de index die geen conflict kan hebben in de zoekopdracht zelf.

Ik ben deze fout tegengekomen bij het implementeren van microservice- en verwerkingsverzoeken, waarvan sommige dubbele records bevatten.



  1. Hoe maak je een eenvoudige fuzzy search met alleen PostgreSQL?

  2. Hoe parameter doorgeven in JDBC-query voor het maken van een tabel?

  3. PDO Query op samengevoegde tabellen wanneer kolomnamen hetzelfde zijn

  4. Databasetabelnamen met Django