O problema é que o parâmetro do procedimento tem o mesmo nome de uma coluna nas tabelas. Quando você se refere a
propertyid nas consultas, ele usa a coluna, não o parâmetro. Os nomes de colunas e variáveis não diferenciam maiúsculas de minúsculas, portanto, não importa se você digitou um deles PropertyID e o outro propertyId . Use um nome diferente para o parâmetro, por exemplo.
p_propertyId Além disso, não há necessidade de duas consultas, você pode fazer isso em uma com um
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
Observe que usar
LIMIT sem ORDER BY significa que a linha selecionada será imprevisível.