Masalahnya adalah bahwa parameter prosedur memiliki nama yang sama dengan kolom dalam tabel. Saat Anda merujuk ke propertyid
dalam kueri, ia menggunakan kolom, bukan parameter. Nama kolom dan variabel tidak peka huruf besar/kecil, jadi tidak masalah jika Anda mengeja salah satunya PropertyID
dan propertyId
lainnya .
Gunakan nama yang berbeda untuk parameter, mis. p_propertyId
Juga, tidak perlu dua kueri, Anda dapat melakukannya dalam satu kueri dengan JOIN
.
UPDATE sales.florida AS s
CROSS JOIN (
SELECT *
FROM annuals.florida
WHERE propertyId = p_propertyId
LIMIT 1) AS a
SET s.SitusLongitude = a.SitusLongitude, s.SitusLatitude = a.SitusLatitude
WHERE s.PROPERTYUNIQUEID = p_propertyId
Perhatikan bahwa menggunakan LIMIT
tanpa ORDER BY
berarti baris yang dipilih tidak dapat diprediksi.