私はMYSQLデータベースに次のストアドプロシージャを持っています。ストアドプロシージャはlon、latを取得し、別のデータベースとテーブルの更新を行っています。更新変数のMYSQLストアドプロシージャは0
DROP PROCEDURE IF EXISTS annuals.updateSalesFlorida;
CREATE DEFINER=`dddd`@`%` PROCEDURE `updateSales`(propertyId int)
BEGIN
DECLARE lat FLOAT;
DECLARE lon FLOAT;
SELECT SitusLongitude,SitusLatitude
INTO lon,lat
FROM annuals.florida
WHERE PropertyID=propertyId
LIMIT 1 FOR UPDATE;
UPDATE sales.florida
SET
`SitusLongitude` = lon,
`SitusLatitude` = lat
WHERE PROPERTYUNIQUEID=propertyId;
END;
私は、ストアドプロシージャを実行するたびにSitusLongitude
とSitusLatitude
列は、私が以前に選択SitusLongitude
とSitusLatitude
がそこに実際の値を持っているという事実を知って0です。何らかの理由で変数がlat、lonに設定されていない。どんなアイデアを私は間違っている?
多くの間違いがあります。テーブル、データ、入力または出力を表示しているわけではありませんが、コードが正しかったり間違っているという主張を受け入れる必要があります。理想的には[SQL Fiddle](http://sqlfiddle.com/)を使用して[mcve]を提供してください。 – shmosel
なぜこれを2つのクエリとして実行していますか? 'JOIN'を使用して単一のUPDATEクエリを実行してください。 – Barmar
どのように、私は上記がより簡単になると思った。 – rastacide