Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Procedura składowana MYSQL dla zmiennych aktualizacji to 0

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydajność MySQL:wiele tabel a indeks na jednej tabeli i partycjach

  2. Mysql:Wybierz wszystkie dane między dwiema datami

  3. kolumna aktualizacji mysql z wartością z innej tabeli

  4. rake db:create generowane, jeśli ustawisz zestaw znaków ręcznie, upewnij się, że masz pasujący błąd sortowania

  5. Ile tekstu UTF-8 mieści się w polu tekstowym MySQL?