PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Błąd składni w kodzie testowym UPSERT

Ponieważ jest to najwyższy wynik Google dotyczący błędu:

ON CONFLICT DO UPDATE command cannot affect row a second time

Dodam, że może to być spowodowane zduplikowanym konfliktem WARTOŚCI , np.

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

W tym przypadku próbujemy wstawić dwie wartości za pomocą dim ustaw na 5 . Jako dim jest indeksem, który nie może powodować konfliktu w samym zapytaniu.

Napotkałem ten błąd podczas wdrażania mikroserwisów i przetwarzania żądań, niektóre z nich mają zduplikowane rekordy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź przerwy w sekwencji w SQL bez tworzenia dodatkowych tabel

  2. Dlaczego putenv() jest potrzebne na już zdefiniowanej zmiennej środowiskowej?

  3. Podział dat na podstawie roku obrotowego

  4. PostgreSQL - uruchom dwie transakcje jednocześnie

  5. Chcesz poznać poniedziałkową datę w Postgresie?