Problemet er, at procedureparameteren har samme navn som en kolonne i tabellerne. Når du henviser til propertyid
i forespørgslerne bruger den kolonnen, ikke parameteren. Kolonne- og variabelnavne skelner mellem store og små bogstaver, så det gør ikke noget, at du har stavet et af dem PropertyID
og den anden propertyId
.
Brug et andet navn til parameteren, f.eks. p_propertyId
Desuden er der ikke behov for to forespørgsler, du kan gøre det i én med en 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
Bemærk, at du bruger LIMIT
uden ORDER BY
betyder, at den valgte række vil være uforudsigelig.