De gebruikelijke manier waarop ik deze dingen in pg doe, is:laad onbewerkte gegevens die overeenkomen met de doeltabel in de tijdelijke tabel (geen beperkingen) met behulp van kopiëren, samenvoegen (het leuke gedeelte), winst.
Ik heb speciaal voor deze situaties een merge_by_key-functie geschreven:
http://mbk.projects.postgresql.org/
De documenten zijn niet erg vriendelijk, maar ik zou willen voorstellen om het een goede te geven kijk.