#1064-sql语法错误

时间:2014-10-08 16:27:58

标签: mysql stored-procedures mysql-error-1064

我一直在尝试通过mySql程序验证用户的用户名和密码

    delimiter //
    create function validate_user(username_1,password_1)
    return char(1)
    DETERMINISTIC
    begin
    declare ret char(1);
    if exists(select * from logintable where userid=username_1 and password=password_1) then
       set ret='1';
    endif;
    return (ret);
    end;//
    delimiter ;

但我在sql语法中遇到错误#1064错误。

2 个答案:

答案 0 :(得分:0)

代码中的第3行

return char(1)

应该是

returns char(1)

答案 1 :(得分:0)

一些事情;

  • 您没有为参数声明类型。
  • RETURN应该是函数声明中的RETURNS
  • ENDIF应为END IF

换句话说;

create function validate_user(username_1 VARCHAR(32), password_1 VARCHAR(32))
returns char(1)
DETERMINISTIC
begin
declare ret char(1);
if exists(select * from logintable where userid=username_1 and password=password_1) then
   set ret='1';
end if;
return (ret);
end;//

An SQLfiddle with all corrections