2012-02-02 4 views
0

안녕하세요, 저는 테이블에서 값을 돌려주는 MySQL 함수를 작성하려고합니다.MySQL 함수의 반환 값

Error Code: 1415. Not allowed to return a result set from a function

내가 무슨 뜻인지 알아,하지만 난 문제를 해결하는 방법을 알고하지 않습니다

나는 오류를 받고 있어요. 난 단지 하나의 값, 삽입 된 행의 ID가 필요합니다. 나는 어떤 도움도 기쁘다.

함수가 수행하는 작업은 다음과 같습니다.
aip_request 테이블에 임의 값으로 새 행을 삽입하면 삽입 후 행을 식별 할 수 있습니다. 이 함수는 생성 된 행의 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

변경이 쿼리 -이 하나

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

-

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

... 당신은 데이터 설정 저장 함수에서 반환하는 SELECT 쿼리를 실행할 수 없습니다.

+0

감사합니다. Devart !! – chris