2016-05-18 12 views
1

私のmysql 5.5手続きで何が問題になっていますか? 私はlinux上のmysqlクライアントコマンドターミナル経由でそれを作成しようとしています。プロシージャでERROR 1064(42000)mysqlエラーが発生するのはなぜですか?

DELIMITER // 
CREATE procedure merge() 
BEGIN 

    DECLARE old_outlet_id INT(10); 
    DECLARE new_outlet_id INT(10); 
    DECLARE gpid VARCHAR(255); 
    DECLARE v_finished INTEGER DEFAULT 0; 
    DEClARE cur CURSOR FOR select distinct google_place_id from service_providers_outlets group by google_place_id having count(google_place_id) > 1; 
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_finished = 1; 

    OPEN cur; 


getC: LOOP 

FETCH cur INTO gpid; 

IF v_finished = 1 THEN 
LEAVE getC; 
END IF; 

    SET old_outlet_id = (select id from service_providers_outlets o where google_place_id = gpid order by created_on limit 1); 
    SET new_outlet_id = (select id from service_providers_outlets o where google_place_id = gpid order by created_on desc limit 1); 

    select concat('old_outlet_id', old_outlet_id); 
    select concat('new_outlet_id', new_outlet_id); 

    if old_outlet_id != new_outlet_id then 
     update reviews_completed set outlet_id = new_outlet_id where outlet_id = old_outlet_id; 
     update service_providers_offers_outlet_link set outlet_id = new_outlet_id where outlet_id = old_outlet_id; 
     update service_providers_offers_redeemed set outlet_id = new_outlet_id where outlet_id = old_outlet_id; 
     update reviews_questions_outlet_link set outlet_id = new_outlet_id where outlet_id = old_outlet_id; 
     delete from dashboard_users_outlet_link where outlet_id = old_outlet_id; 
     delete from service_providers_outlets where id = old_outlet_id; 
    end if; 

END LOOP getC; 

CLOSE cur; 

END // 
DELIMITER ; 

私は、次のエラー取得しています:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'o where google_place_id = '' order by created_on limit 1); ew_outlet_id = (selec' at line 22 mysql> DELIMITER ;

答えて

0

代わりに、最大を使用してみてくださいとMinを

SET old_outlet_id = (select max(id) from service_providers_outlets o where google_place_id = ''); 
SET new_outlet_id = (select min(id) from service_providers_outlets o where google_place_id = ''); 
関連する問題