Mysql
 sql >> база данни >  >> RDS >> Mysql

Съхранената процедура в MYSQL за променливи за актуализиране е 0

Проблемът е, че параметърът на процедурата има същото име като колона в таблиците. Когато се позовавате на 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 означава, че избраният ред ще бъде непредсказуем.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да заредите JDBC конфигурация от пример за файл със свойства

  2. MySQL разделя низ, разделен със запетая, във времева таблица

  3. MySQL срещу MySQLi при използване на PHP

  4. Достъп до базата данни MySQL с помощта на c# на unity?

  5. MySQL2 Ruby gem няма да инсталира 10.6