2012-03-29 1 views
-1

у меня есть процедура MySQL хранится, который дает мне следующую ошибку: -MySQL ошибка синтаксиса хранимой процедуры:

# 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'set inffer =' выберите max (offer) из home 'if (inffer IS NULL), затем установите int' в строке 4

У меня есть установите разделитель в поле разделителя как:. Хранимая процедура:

create procedure sp() 
begin 
declare intoffer int 
set intoffer = 'select max(offerid) from home' 
if(intoffer IS NULL) then 
set intoffer=1 
else 
set intoffer=intoffer+1 
insert into home(offerid,offerheader,offertext,offerimage,offerlink) values(intoffer,'d','d','d','d') 
end; 

ответ

1

Были некоторые синтаксис и другие ошибки. Попробуйте этот код -

CREATE PROCEDURE sp() 
BEGIN 
    DECLARE intoffer INT; 

    SELECT max(offerid) INTO intoffer FROM home; 
    IF (intoffer IS NULL) THEN 
    SET intoffer = 1; 
    ELSE 
    SET intoffer = intoffer + 1; 
    END IF; 
    INSERT INTO home (offerid, offerheader, offertext, offerimage, offerlink) VALUES (intoffer, 'd', 'd', 'd', 'd'); 
END 
+0

спасибо, что тонна удержала мой день – asifa