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.