【问题标题】:Creating a procedure in mySql with parameters在mySql中创建一个带参数的过程
【发布时间】:2011-06-29 16:29:20
【问题描述】:

我正在尝试使用 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;

提前谢谢你

【问题讨论】:

    标签: mysql parameters procedure


    【解决方案1】:

    在 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');
    

    【讨论】:

      【解决方案2】:
      (IN @brugernavn varchar(64)**)**,IN @password varchar(64))
      

      问题是)

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • 删除了我之前的帖子。忘记了@指向mysql中的全局变量(我通常在Sql server中工作,其中@指向普通参数)。如果你想检查一个命令的语法,你总是可以去mysql reference manual。对于 CREATE PROCEDURE,这将是 this page
        • this page
        猜你喜欢
        • 2012-02-29
        • 2011-06-20
        • 1970-01-01
        • 2017-06-19
        • 2021-06-19
        • 1970-01-01
        • 1970-01-01
        • 2021-10-01
        • 2013-05-25
        相关资源
        最近更新 更多