Создание процедуры в mySql с параметрами - PullRequest
32 голосов
/ 18 февраля 2011

Я пытаюсь создать хранимую процедуру, используя 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 ]

56 голосов
/ 18 февраля 2011

Я понял это сейчас. Вот правильный ответ

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

@ указывает на глобальную переменную в MySQL. Вышеуказанный синтаксис правильный.

7 голосов
/ 17 апреля 2013
(IN @brugernavn varchar(64)**)**,IN @password varchar(64))

Проблема в )

4 голосов
/ 22 сентября 2018

Очень легко создать процедуру в 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

...