web-dev-qa-db-ja.com

パラメータを使用してmySqlでプロシージャを作成する

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;

前もって感謝します

32
Peter Rasmussen

私は今それを理解しました。正解はこちら

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

@はmysqlのグローバル変数を指します。上記の構文は正しいです。

58
Peter Rasmussen
(IN @brugernavn varchar(64)**)**,IN @password varchar(64))

問題は)

7
Alexo

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

4
Brajesh