Синтаксическая ошибка хранимой процедуры mysql: - PullRequest
0 голосов
/ 29 марта 2012

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

# 1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'set intoffer =' select max (offerid) from home 'if (intoffer 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 Ответ

1 голос
/ 29 марта 2012

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

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
...