Problem polega na tym, że parametr procedury ma taką samą nazwę jak kolumna w tabelach. Kiedy odwołujesz się do propertyid w zapytaniach używa kolumny, a nie parametru. W nazwach kolumn i zmiennych wielkość liter nie jest rozróżniana, więc nie ma znaczenia, że wpisałeś jedną z nich PropertyID i drugi propertyId .
Użyj innej nazwy dla parametru, np. p_propertyId
Ponadto nie ma potrzeby wykonywania dwóch zapytań, możesz to zrobić w jednym za 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
Pamiętaj, że używając LIMIT bez ORDER BY oznacza, że wybrany wiersz będzie nieprzewidywalny.