Возвращаемое значение из функции в MySQL - PullRequest
0 голосов
/ 02 февраля 2012

Привет. Я пытаюсь написать функцию в MySQL, которая возвращает мне значение из таблицы.

Я получаю ошибку:

Код ошибки: 1415. Не разрешено возвращать набор результатов из функции

Я знаю, что этозначит, но я не знаю, как решить проблему.Мне просто нужно одно значение, идентификатор вставленной строки.Я рад любой помощи.

Что делает функция:
Вставьте новую строку в таблицу aip_request со значением Random, чтобы я мог идентифицировать строку после вставки.Функция должна вернуть Id созданной строки.Идентификатор request_id является автоматическим значением.

DROP FUNCTION IF EXISTS `sp_get_new_request_id`;
DELIMITER $$

CREATE FUNCTION `sp_get_new_request_id` ()
RETURNS BIGINT
BEGIN
 DECLARE var_random bigint;
 SET @random := CAST(RAND(NOW()) AS CHAR(150));
 INSERT INTO aip_request
  (Firstname)
  VALUES( @random );
 SELECT request_id INTO var_random FROM aip_request
 WHERE Firstname = @random 
 LIMIT 1;
 Return var_random;
END
$$

1 Ответ

1 голос
/ 02 февраля 2012

Изменить этот запрос -

SELECT @random := CAST(RAND(NOW()) AS CHAR(150));

с этим -

SET @random := CAST(RAND(NOW()) AS CHAR(150));

... вы не можете выполнить запрос SELECT, который возвращает набор данных из сохраненной функции.

...