sql >> Database >  >> RDS >> PostgreSQL

Hoe upsert in Postgres op conflict op een van de 2 kolommen?

Ja, en dit gedrag is standaard. Elke unieke schending van een beperking vormt een conflict en vervolgens wordt de UPDATE wordt uitgevoerd als ON CONFLICT DO UPDATE is gespecificeerd. De INSERT statement kan slechts één ON CONFLICT . hebben clausule, maar de conflict_target van die clausule kan meerdere kolomnamen specificeren die elk een index moeten hebben, zoals een UNIQUE beperking. U bent echter beperkt tot een enkele conflict_action en u zult geen informatie hebben over welke beperking het conflict heeft veroorzaakt bij het verwerken van die actie. Als je dat soort informatie of specifieke actie nodig hebt, afhankelijk van de schending van de beperking, moet je een triggerfunctie schrijven, maar dan verlies je de allerbelangrijkste atomiciteit van de INSERT ... ON CONFLICT DO ... verklaring.



  1. Reset automatische ophogingsteller in postgre

  2. Hoe CAST() werkt in SQL Server

  3. Waarde van de tabelkolom met komma moet worden gescheiden terwijl gescheiden gegevens in een weergave worden weergegeven

  4. Wat zijn de verschillende manieren om gegevens in de SQL Server-tabel in te voegen - SQL Server / TSQL-zelfstudie, deel 100