我正在尝试在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
答案 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