Ja, og denne adfærd er standard. Enhver overtrædelse af entydige begrænsninger udgør en konflikt og derefter UPDATE
udføres, hvis ON CONFLICT DO UPDATE
er angivet. INSERT
sætning kan kun have en enkelt ON CONFLICT
klausulen, men conflict_target
af denne klausul kan angive flere kolonnenavne, som hver skal have et indeks, såsom en UNIQUE
begrænsning. Du er dog begrænset til en enkelt conflict_action
og du vil ikke have information om, hvilken begrænsning der forårsagede konflikten, når du behandler denne handling. Hvis du har brug for den slags information eller specifik handling afhængigt af begrænsningsovertrædelsen, bør du skrive en triggerfunktion, men så mister du den altafgørende atomicitet i INSERT ... ON CONFLICT DO ...
erklæring.