Utilisez le FROM
clause de UPDATE
pour joindre temp_zip_type
et zip_code_type
et faites tout cela en une simple déclaration :
UPDATE zip_code z
SET type_id = t.id
FROM temp_zip_type tmp
JOIN zip_code_type t ON t.value = tmp.temp_type
WHERE z.zip_5_digit = tmp.temp_zip
AND z.type_id IS DISTINCT FROM t.id; -- avoid empty updates
J'ai ajouté la dernière ligne pour éviter les mises à jour vides. Cela peut être utile ou non. Détails :