Il problema è che il parametro della procedura ha lo stesso nome di una colonna nelle tabelle. Quando fai riferimento a propertyid
nelle query utilizza la colonna, non il parametro. I nomi di colonne e variabili non fanno distinzione tra maiuscole e minuscole, quindi non importa se ne hai digitato uno PropertyID
e l'altro propertyId
.
Utilizzare un nome diverso per il parametro, ad es. p_propertyId
Inoltre, non sono necessarie due query, puoi farlo in una con un 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
Nota che usando LIMIT
senza ORDER BY
significa che la riga selezionata sarà imprevedibile.