समस्या यह है कि प्रक्रिया पैरामीटर का तालिका में कॉलम के समान नाम है। जब आप propertyid
. का संदर्भ लेते हैं प्रश्नों में, यह कॉलम का उपयोग करता है, पैरामीटर का नहीं। कॉलम और वेरिएबल नाम केस-असंवेदनशील होते हैं, इसलिए इससे कोई फर्क नहीं पड़ता कि आपने उनमें से किसी एक को PropertyID
लिखा है और अन्य propertyId
।
पैरामीटर के लिए किसी भिन्न नाम का उपयोग करें, उदा. p_propertyId
साथ ही, दो प्रश्नों की कोई आवश्यकता नहीं है, आप इसे 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
ध्यान दें कि LIMIT
. का उपयोग करके बिना ORDER BY
इसका मतलब है कि जो पंक्ति चुनी गई है वह अप्रत्याशित होगी।