DELIMITER //  
create procedure test(in pi_loginid varchar(20),in pi_username varchar(20),in pi_gender tinyint,in pi_birthday datetime,out po_return int)  
begin  
if (exists (select * from account_users where loginid=pi_loginid)) then
set po_return=0;
else
insert into account_users values(pi_loginid,pi_username,'1234',pi_gender,pi_birthday);
commit;
set po_return=1;
end if;  
END;  
// 
DELIMITER ;

解决方案 »

  1.   

    建议参考MYSQL官方免费手册中的语法和例子亲自动手修改一下。 然后如果有什么问题可以把自己写的代码和错误提示一同贴出大家一起分析讨论。
      

  2.   

    DELIMITER //  
    create procedure test(in pi_loginid varchar(20),in pi_username varchar(20),in pi_gender tinyint,in pi_birthday datetime,out po_return int)  
    begin  
    if (exists (select * from account_users where loginid=pi_loginid)) then
    set po_return=0;
    else
    insert into account_users values(pi_loginid,pi_username,'1234',pi_gender,pi_birthday);
    commit;
    set po_return=1;
    end if;  
    END;  
    // 
    DELIMITER ;
      

  3.   

    drop procedure if exists sp_add_address;
    create procedure test(in pi_loginid varchar(20),in pi_username varchar(20),in pi_gender tinyint,in pi_birthday datetime,out po_return int)  
    modifies sql data
    begin
         /*define error message*/
         declare continue handler for 1062 set out_status='duplicate entry' ;
         set po_return='ok';
         insert into account_users
         select pi_loginid,pi_username,'1234',pi_gender,pi_birthday;       
    end;