Проблемът е, че параметърът на процедурата има същото име като колона в таблиците. Когато се позовавате на propertyid
в заявките той използва колоната, а не параметъра. Имената на колоните и променливите не са чувствителни към главни букви, така че няма значение, че сте изписали едно от тях PropertyID
и другият propertyId
.
Използвайте различно име за параметъра, напр. p_propertyId
Освен това няма нужда от две заявки, можете да го направите в една с 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
Имайте предвид, че използвате LIMIT
без ORDER BY
означава, че избраният ред ще бъде непредсказуем.