Cara biasa saya melakukan hal-hal ini di pg adalah:memuat data mentah yang cocok dengan tabel target ke tabel temp (tanpa kendala) menggunakan salin, gabungkan (bagian yang menyenangkan), untung.
Saya menulis fungsi merge_by_key khusus untuk situasi ini:
http://mbk.projects.postgresql.org/
Dokumennya tidak terlalu ramah, tapi saya sarankan untuk memberikannya bagus lihat.