Vấn đề là tham số thủ tục có cùng tên với một cột trong bảng. Khi bạn tham khảo propertyid trong các truy vấn, nó sử dụng cột, không phải tham số. Tên cột và tên biến không phân biệt chữ hoa chữ thường, vì vậy bạn đánh vần một trong số chúng PropertyID không quan trọng và propertyId khác .
Sử dụng một tên khác cho tham số, ví dụ:p_propertyId
Ngoài ra, không cần hai truy vấn, bạn có thể thực hiện trong một truy vấn với 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
Lưu ý rằng sử dụng LIMIT không có ORDER BY có nghĩa là hàng được chọn sẽ không thể đoán trước được.