PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kesalahan sintaks dalam kode uji UPSERT

Karena ini adalah hasil teratas Google untuk kesalahan:

ON CONFLICT DO UPDATE command cannot affect row a second time

Saya akan menambahkan bahwa Ini mungkin disebabkan oleh konflik duplikat VALUES , misalnya

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

Dalam hal ini kami mencoba memasukkan dua nilai dengan dim setel ke 5 . Sebagai dim adalah indeks yang tidak boleh memiliki konflik dalam kueri itu sendiri.

Saya mengalami kesalahan ini saat menerapkan layanan mikro dan memproses permintaan, beberapa di antaranya memiliki catatan duplikat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat fungsi pemicu secara dinamis di pgsql?

  2. Cegah pemicu rekursif di PostgreSQL

  3. Simpan interval waktu di PostgreSQL dari Rails

  4. Lampirkan LIST partisi ke tabel yang ada di postgres 11

  5. ketidakcocokan versi pg_dump di Rails