Use el FROM
cláusula de UPDATE
para unirse a temp_zip_type
y zip_code_type
y hazlo todo en una sola declaración:
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
Agregué la última línea para evitar actualizaciones vacías. Puede o no ser útil. Detalles: