MySQL OUT параметр, возвращающий NULL - PullRequest
1 голос
/ 26 января 2020

У меня есть процедура в MySQL, и я хочу, чтобы строка Question_Description передавалась как параметр OUT. Однако каждый раз, когда я выполняю процедуру, она всегда возвращает NULL. Как я могу это исправить? Я пробовал много разных методов, и ни один из них не работал.

DELIMITER $$
CREATE PROCEDURE `QuestionTitle`(IN `QID` INT(11), OUT `Description` VARCHAR(255))
BEGIN
select Question.Question_ID, Question.Question_Description
FROM Question, QuestionAllocator
WHERE Question.Question_ID=QuestionAllocator.QuestionID and Question.Question_ID=QID;
END$$
DELIMITER ;

1 Ответ

0 голосов
/ 26 января 2020

Вам необходимо присвоить значение.

CREATE PROCEDURE `QuestionTitle`(
    IN in_QID INT(11),
    OUT out_Description VARCHAR(255)
)
BEGIN
    SELECT out_Description := q.Question_Description
    FROM Question q
    WHERE q.Question_ID = in_QID;
END$$

Обратите внимание на другие изменения:

  • Входные аргументы ясно показывают, что они являются входными или выходными параметрами. Это помогает избежать конфликта с именами столбцов.
  • Требуется только одна таблица, поэтому удаляется другая.
  • Выходному параметру присваивается значение.
  • Необходимо изучить правильный, явный, стандартный JOIN синтаксис, даже если этот запрос не требует JOIN.
...