2012-03-29 104 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