在mySql中创建带有参数的存储过程

47

我正在尝试使用mySQL创建一个存储过程,用于验证用户名和密码。我当前正在运行的是mySQL 5.0.32版本,因此应该可以创建存储过程。

这是我使用的代码。但一直收到 SQL 语法错误的提示。

   GO
    CREATE PROCEDURE checkUser
    (IN @brugernavn varchar(64)),IN @password varchar(64))
    BEGIN
    SELECT COUNT(*)  FROM bruger WHERE bruger.brugernavn=@brugernavn AND bruger.pass=@Password;
    END;

提前感谢你

3个回答

80

我现在想通了,这是正确的答案

CREATE PROCEDURE checkUser 
(
   brugernavn1 varchar(64),
   password varchar(64)
) 
BEGIN 
   SELECT COUNT(*) FROM bruger 
   WHERE bruger.brugernavn=brugernavn1 
   AND bruger.pass=password; 
END; 

@指向mysql中的全局变量。上述语法是正确的。


2
删除了之前的帖子。忘记了在mysql中@指向全局变量(我通常在Sql server中工作,@指向普通参数)。如果您想检查命令的语法,可以随时查看mysql参考手册。对于CREATE PROCEDURE,这将是此页面 - Sem Vanmeenen
请查看此页面 - Sem Vanmeenen

8

在Mysql中创建过程非常容易。在我的例子中,我将创建一个过程,该过程负责根据提供的名称从学生表中检索所有数据。

DELIMITER //
CREATE PROCEDURE getStudentInfo(IN s_name VARCHAR(64))
BEGIN
SELECT * FROM student_database.student s where s.sname = s_name;
END//
DELIMITER;

在上面的示例中,数据库和表名分别为student_database和student。 注意:您也可以将@s_name作为全局变量传递,而不是s_name。
如何调用过程? 很简单,只需使用以下命令调用过程。
$mysql> CAll getStudentInfo('pass_required_name');

enter image description here


8
(IN @brugernavn varchar(64)**)**,IN @password varchar(64))

问题出在)这里。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接