未定义的变量o

时间:2015-03-28 06:10:34

标签: mysql

我正在尝试在MySQL中创建一个过程。这是身体:

BEGIN

DECLARE _date_delivered datetime;
DECLARE _date_last_comment datetime;
DECLARE _buyer_id int;
DECLARE _date_finish_line datetime;

   SELECT o.date_delivered INTO _date_delivered,o.buyer_id INTO _buyer_id, h.date INTO 
       _date_las_comment, DATE_ADD( h.date, INTERVAL _hours HOUR ) 
       INTO _date_finish_line 
   FROM wpk9_kk_order o 
   LEFT JOIN 
       wpk9_kk_order_history h ON 
       o.order_id = h.order_id WHERE o.order_id = _order_id AND h.user_id = o.buyer_id 
   ORDER BY h.date DESC;

   select _date_delivered,_buyer_id, _date_last_comment, _date_finish_line;
END

但是当我保存它时,我收到了这个错误:

  

处理您的请求时发生了一个或多个错误:

     

以下查询失败:“CREATE DEFINER = root @ localhost PROCEDURE getAutoFinishTimeRemaining(IN _order_id INT,IN _hours INT)NOT DETERMINISTIC READS SQL DATA SQL SECURITY DEFINER BEGIN DECLARE _date_delivered datetime; DECLARE _date_last_comment datetime; DECLARE _buyer_id int; DECLARE _date_finish_line datetime; SELECT o.date_delivered INTO _date_delivered,o.buyer_id INTO _buyer_id,h.date INTO _date_las_comment,DATE_ADD(h.date,INTERVAL _hours HOUR)INTO _date_finish_line FROM wpk9_kk_order o LEFT JOIN wpk9_kk_order_history h ON o.order_id = h.order_id WHERE o .order_id = _order_id AND h.user_id = o.buyer_id ORDER BY h.date DESC; select _date_delivered,_buyer_id,_date_last_comment,_date_finish_line; END“

MySQL说:#1327 - 未声明的变量:o

1 个答案:

答案 0 :(得分:0)

检查您的_date_last_comment列。在select语句中编写_date_last_comment列时出现错字。您已写过_date_las_comment(在错误消息中也清楚地看到了这一点。)

您的程序应该是:

BEGIN

DECLARE _date_delivered datetime;
DECLARE _date_last_comment datetime;
DECLARE _buyer_id int;
DECLARE _date_finish_line datetime;

   SELECT o.date_delivered INTO _date_delivered,o.buyer_id INTO _buyer_id, h.date INTO 
       _date_last_comment, DATE_ADD( h.date, INTERVAL _hours HOUR ) 
       INTO _date_finish_line 
   FROM wpk9_kk_order o 
   LEFT JOIN 
       wpk9_kk_order_history h ON 
       o.order_id = h.order_id WHERE o.order_id = _order_id AND h.user_id = o.buyer_id 
   ORDER BY h.date DESC;

   select _date_delivered,_buyer_id, _date_last_comment, _date_finish_line;
END