Problém je v tom, že parametr procedury má stejný název jako sloupec v tabulkách. Když odkazujete na propertyid
v dotazech používá sloupec, nikoli parametr. V názvech sloupců a proměnných se nerozlišují malá a velká písmena, takže nezáleží na tom, že jste jeden z nich napsali PropertyID
a další propertyId
.
Pro parametr použijte jiný název, např. p_propertyId
Také nejsou potřeba dva dotazy, můžete to udělat v jednom pomocí 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
Všimněte si, že pomocí LIMIT
bez ORDER BY
znamená, že vybraný řádek bude nepředvídatelný.