sql >> Databáze >  >> RDS >> Mysql

Uložená procedura MYSQL pro aktualizační proměnné je 0

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ý.




  1. MySQL C++ Connector:nedefinovaný odkaz na `get_driver_instance'

  2. #1115 - Neznámá znaková sada:'utf8mb4'

  3. Mac + virtualenv + pip + postgresql =Chyba:Spustitelný soubor pg_config nebyl nalezen

  4. Jak získat název dne v týdnu z data?