2012-03-29 151 views
-1

我有一個MySQL存儲過程,這是給我下面的錯誤: -MySQL存儲過程的語法錯誤:

#1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用近「設置intoffer =‘請從家裏最大(OFFERID)’如果(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

存在一些語法錯誤和其他錯誤。試試這個代碼 -

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 2012-03-29 07:31:38